Finish V1_0_32(35)
This commit is contained in:
commit
57768a8f71
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 34
|
def appVersionCode = 35
|
||||||
def appVersionName = '1.0.31'
|
def appVersionName = '1.0.32'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|||||||
@ -12,9 +12,9 @@
|
|||||||
android:name=".MainApplication"
|
android:name=".MainApplication"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@drawable/integry_round_icon"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@drawable/integry_round_icon"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
|
|||||||
@ -121,8 +121,7 @@ public class MainActivity extends AppCompatActivity
|
|||||||
@Override
|
@Override
|
||||||
public boolean onNavigationItemSelected(MenuItem item) {
|
public boolean onNavigationItemSelected(MenuItem item) {
|
||||||
|
|
||||||
mBinding.appBarMain.waterfallToolbar.resetElevation();
|
mBinding.appBarMain.waterfallToolbar.resetAll();
|
||||||
mBinding.appBarMain.waterfallToolbar.setRecyclerView(null);
|
|
||||||
|
|
||||||
// Handle navigation view item clicks here.
|
// Handle navigation view item clicks here.
|
||||||
Fragment fragment = null;
|
Fragment fragment = null;
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import android.util.Base64;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
import okhttp3.Interceptor;
|
import okhttp3.Interceptor;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
@ -19,7 +20,7 @@ public class HttpInterceptor implements Interceptor {
|
|||||||
@Override
|
@Override
|
||||||
public Response intercept(Chain chain) throws IOException {
|
public Response intercept(Chain chain) throws IOException {
|
||||||
|
|
||||||
final String PROFILE_DB = SettingsManager.i().userSession.profileDB;
|
final String PROFILE_DB = SettingsManager.i().userSession == null ? null : SettingsManager.i().userSession.profileDB;
|
||||||
final String USERNAME = SettingsManager.i().user.username;
|
final String USERNAME = SettingsManager.i().user.username;
|
||||||
final String PASSWORD = SettingsManager.i().user.password;
|
final String PASSWORD = SettingsManager.i().user.password;
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,21 @@
|
|||||||
package it.integry.integrywmsnative.core.di;
|
package it.integry.integrywmsnative.core.di;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
|
||||||
import androidx.databinding.BaseObservable;
|
import androidx.databinding.BaseObservable;
|
||||||
|
|
||||||
public class BindableFloat extends BaseObservable {
|
public class BindableFloat extends BaseObservable {
|
||||||
Float value;
|
private Float value;
|
||||||
|
|
||||||
public Float get() {
|
public Float get() {
|
||||||
return get(true);
|
return get(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBigDecimal() {
|
||||||
|
return new BigDecimal(get()).setScale(3, RoundingMode.CEILING);
|
||||||
|
}
|
||||||
|
|
||||||
public Float get(boolean defaultIfNull) {
|
public Float get(boolean defaultIfNull) {
|
||||||
|
|
||||||
if(value == null){
|
if(value == null){
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
|
|
||||||
import com.google.firebase.perf.metrics.Trace;
|
import com.google.firebase.perf.metrics.Trace;
|
||||||
|
|
||||||
|
import java.net.SocketTimeoutException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
@ -84,7 +85,7 @@ public class SettingsManager {
|
|||||||
|
|
||||||
RunnableArgs<Exception> tmpOnFailed = ex -> {
|
RunnableArgs<Exception> tmpOnFailed = ex -> {
|
||||||
perfTrace.putAttribute("failed", "true");
|
perfTrace.putAttribute("failed", "true");
|
||||||
onFailed.run(ex);
|
if(!(ex instanceof SocketTimeoutException)) onFailed.run(ex);
|
||||||
};
|
};
|
||||||
|
|
||||||
loadDatiAzienda(() ->
|
loadDatiAzienda(() ->
|
||||||
|
|||||||
@ -116,10 +116,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void init(){
|
private void init() {
|
||||||
|
|
||||||
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting), getText(R.string.loading) + " ...", true);
|
||||||
getText(R.string.loading) + " ...", true);
|
|
||||||
|
|
||||||
helper = new AccettazioneHelper(getActivity());
|
helper = new AccettazioneHelper(getActivity());
|
||||||
|
|
||||||
|
|||||||
@ -765,7 +765,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
|
|||||||
.setCodMart(item.mtbAart.getCodMart())
|
.setCodMart(item.mtbAart.getCodMart())
|
||||||
.setPartitaMag(quantityDTO.batchLot.get())
|
.setPartitaMag(quantityDTO.batchLot.get())
|
||||||
.setDataScadPartita(quantityDTO.expireDate)
|
.setDataScadPartita(quantityDTO.expireDate)
|
||||||
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
.setDescrizione(item.descrizioneEstesa)
|
.setDescrizione(item.descrizioneEstesa)
|
||||||
.setNumOrd(item.numOrd)
|
.setNumOrd(item.numOrd)
|
||||||
.setDataOrd(item.getDataOrd())
|
.setDataOrd(item.getDataOrd())
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import android.view.ViewGroup;
|
|||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
@ -83,6 +84,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
|
mViewModel.closeLU();
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -395,9 +395,9 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
|||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
||||||
mtbColr
|
mtbColr
|
||||||
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
.setQtaCnf(new BigDecimal(quantityDTO.qtaCnf.get()))
|
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
||||||
.setNumCnf(new BigDecimal(quantityDTO.numCnf.get()))
|
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
||||||
.setDatetimeRow(new Date());
|
.setDatetimeRow(new Date());
|
||||||
|
|
||||||
onComplete.run(mtbColr);
|
onComplete.run(mtbColr);
|
||||||
|
|||||||
@ -316,7 +316,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
.setCodMart(mtbAart.getCodMart())
|
.setCodMart(mtbAart.getCodMart())
|
||||||
.setPartitaMag(quantityDTO.batchLot.get())
|
.setPartitaMag(quantityDTO.batchLot.get())
|
||||||
.setDataScadPartita(quantityDTO.expireDate)
|
.setDataScadPartita(quantityDTO.expireDate)
|
||||||
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
.setDescrizione(mtbAart.getDescrizioneEstesa());
|
.setDescrizione(mtbAart.getDescrizioneEstesa());
|
||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
@ -499,7 +499,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
mtbColrToEditClone
|
mtbColrToEditClone
|
||||||
.setRiga(null)
|
.setRiga(null)
|
||||||
.setDatetimeRow(new Date())
|
.setDatetimeRow(new Date())
|
||||||
.setQtaCol(new BigDecimal(value.qtaTot.get()).subtract(mtbColrToEditClone.getQtaCol()))
|
.setQtaCol(value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol()))
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
|
||||||
MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone();
|
MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone();
|
||||||
@ -514,7 +514,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
mtbColt.get().getMtbColr().remove(index);
|
mtbColt.get().getMtbColr().remove(index);
|
||||||
|
|
||||||
mtbColrToEditClone
|
mtbColrToEditClone
|
||||||
.setQtaCol(new BigDecimal(value.qtaTot.get()))
|
.setQtaCol(value.qtaTot.getBigDecimal())
|
||||||
.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
mtbColt.get().getMtbColr().add(index, mtbColrToEditClone);
|
mtbColt.get().getMtbColr().add(index, mtbColrToEditClone);
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.PosizioneRESTonsumer;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO;
|
import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
@ -34,11 +35,13 @@ import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||||
@ -147,8 +150,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(foundGestioni != null && foundGestioni.size() > 1){
|
if(foundGestioni != null && foundGestioni.size() > 1){
|
||||||
UtilityExceptions.defaultException(mActivity, new Exception("Impossibile caricare ordini di diverse gestioni"));
|
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Impossibile caricare ordini di diverse gestioni"), null, () -> {
|
||||||
mActivity.finish();
|
mActivity.finish();
|
||||||
|
}).show();
|
||||||
|
// UtilityExceptions.defaultException(mActivity, new Exception("Impossibile caricare ordini di diverse gestioni"));
|
||||||
|
// mActivity.finish();
|
||||||
return;
|
return;
|
||||||
} else if(foundGestioni != null && foundGestioni.size() == 1){
|
} else if(foundGestioni != null && foundGestioni.size() == 1){
|
||||||
defaultGestioneOfUL = foundGestioni.get(0);
|
defaultGestioneOfUL = foundGestioni.get(0);
|
||||||
@ -334,10 +340,18 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
if(UtilityBarcode.isEtichettaAnonima(data)){
|
if(UtilityBarcode.isEtichettaAnonima(data)){
|
||||||
//Cerco gli articoli presenti nell'ul dell'etichetta anonima
|
//Cerco gli articoli presenti nell'ul dell'etichetta anonima
|
||||||
this.executeEtichettaLU(data.getStringValue(), progressDialog);
|
this.executeEtichettaLU(data.getStringValue(), progressDialog);
|
||||||
} else if(UtilityBarcode.isEtichetta128(data)) {
|
|
||||||
|
|
||||||
|
|
||||||
|
} else if(UtilityBarcode.isEtichetta128(data)) {
|
||||||
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
||||||
this.executeEtichettaEan128(data, progressDialog);
|
this.executeEtichettaEan128(data, progressDialog);
|
||||||
|
|
||||||
|
|
||||||
|
} else if(UtilityBarcode.isEtichettaPosizione(data)) {
|
||||||
|
//Cerco l'UL presente all'interno della posizione
|
||||||
|
this.executeEtichettaPosizione(data.getStringValue(), progressDialog);
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.loadArticolo(data.getStringValue(), null, progressDialog);
|
this.loadArticolo(data.getStringValue(), null, progressDialog);
|
||||||
}
|
}
|
||||||
@ -377,6 +391,65 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
UtilityExceptions.defaultException(mActivity, ex, progressDialog);
|
UtilityExceptions.defaultException(mActivity, ex, progressDialog);
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeEtichettaPosizione(String posizione, ProgressDialog progressDialog) {
|
||||||
|
|
||||||
|
|
||||||
|
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(posizione);
|
||||||
|
|
||||||
|
|
||||||
|
if(foundPosizione != null) {
|
||||||
|
|
||||||
|
if(foundPosizione.isFlagMonoCollo()) {
|
||||||
|
|
||||||
|
PosizioneRESTonsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
|
||||||
|
|
||||||
|
if(mtbColtList == null || mtbColtList.size() == 0 || mtbColtList.size() > 1) {
|
||||||
|
|
||||||
|
progressDialog.dismiss();
|
||||||
|
//Nessuna UL trovata oppure più UL nella stessa posizione
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Nessuna UL trovata"), null, BarcodeManager::enable).show();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
|
||||||
|
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
||||||
|
searchArtFromUL(mtbColt, progressDialog);
|
||||||
|
} else {
|
||||||
|
progressDialog.dismiss();
|
||||||
|
showNoArtFoundDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}, ex -> {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progressDialog);
|
||||||
|
BarcodeManager.enable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}, ex -> {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progressDialog);
|
||||||
|
BarcodeManager.enable();
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
progressDialog.dismiss();
|
||||||
|
//La posizione non è Mono-UL
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("La posizione scelta non è Mono-UL"), null, BarcodeManager::enable).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
progressDialog.dismiss();
|
||||||
|
//Nessuna posizione trovata con questo barcode
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Nessuna posizione trovata con il barcode scansionato"), null, BarcodeManager::enable).show();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -418,7 +491,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
|
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
|
||||||
barcodeProd = barcodeProd.substring(1, barcodeProd.length());
|
barcodeProd = barcodeProd.substring(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadArticolo(barcodeProd, PickingObjectDTO.PickData.fromEan128(ean128Model), progressDialog);
|
this.loadArticolo(barcodeProd, PickingObjectDTO.PickData.fromEan128(ean128Model), progressDialog);
|
||||||
@ -998,9 +1071,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
final MtbColr mtbColr = new MtbColr()
|
final MtbColr mtbColr = new MtbColr()
|
||||||
.setCodMart(item.getCodMart())
|
.setCodMart(item.getCodMart())
|
||||||
.setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get()))
|
.setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get()))
|
||||||
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
.setQtaCnf(new BigDecimal(quantityDTO.qtaCnf.get()))
|
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
||||||
.setNumCnf(new BigDecimal(quantityDTO.numCnf.get()))
|
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
||||||
.setDescrizione(item.getDescrizioneEstesa())
|
.setDescrizione(item.getDescrizioneEstesa())
|
||||||
.setDatetimeRow(new Date());
|
.setDatetimeRow(new Date());
|
||||||
|
|
||||||
@ -1023,7 +1096,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
|
|||||||
@ -327,9 +327,9 @@ public class VersamentoMerceViewModel {
|
|||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
||||||
mtbColr
|
mtbColr
|
||||||
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
.setQtaCnf(new BigDecimal(quantityDTO.qtaCnf.get()))
|
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
||||||
.setNumCnf(new BigDecimal(quantityDTO.numCnf.get()))
|
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
||||||
.setDatetimeRow(new Date());
|
.setDatetimeRow(new Date());
|
||||||
|
|
||||||
onComplete.run(mtbColr);
|
onComplete.run(mtbColr);
|
||||||
|
|||||||
@ -176,7 +176,7 @@ public class ArticoliInColloBottomSheetViewModel {
|
|||||||
final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting),
|
final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting),
|
||||||
mContext.getText(R.string.loading) + " ...", true);
|
mContext.getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
itemToEdit.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()));
|
itemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.updateRiga(itemToEdit, () ->{
|
ColliMagazzinoRESTConsumer.updateRiga(itemToEdit, () ->{
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import android.widget.EditText;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
@ -328,7 +329,9 @@ public class DialogInputQuantity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(quantityDTO.numCnf.get(false) == null) {
|
if(quantityDTO.numCnf.get(false) == null) {
|
||||||
quantityDTO.numCnf.set(quantityDTO.qtaTot.get() / quantityDTO.qtaCnf.get());
|
float numCnf = (float) Math.ceil(quantityDTO.qtaTot.get() / quantityDTO.qtaCnf.get());
|
||||||
|
if(numCnf < 1) numCnf = 1;
|
||||||
|
quantityDTO.numCnf.set(numCnf);
|
||||||
}
|
}
|
||||||
|
|
||||||
quantityDTO.canPartitaMagBeChanged.set(dto.getCanPartitaMagBeChanged());
|
quantityDTO.canPartitaMagBeChanged.set(dto.getCanPartitaMagBeChanged());
|
||||||
@ -457,7 +460,7 @@ public class DialogInputQuantity {
|
|||||||
|
|
||||||
if(quantityDTO.numCnfNotificationEnabled) {
|
if(quantityDTO.numCnfNotificationEnabled) {
|
||||||
|
|
||||||
quantityDTO.blockedNumDiCnf.set(!(quantityDTO.numCnf.get(true) == 0 || quantityDTO.numCnf.get().toString() == ""));
|
quantityDTO.blockedNumDiCnf.set(!(quantityDTO.numCnf.get(true) == 0 || quantityDTO.numCnf.get().toString().equals("")));
|
||||||
|
|
||||||
toggleTextInputLayoutError(txlInputNumDiCnf, quantityDTO.blockedNumDiCnf.get());
|
toggleTextInputLayoutError(txlInputNumDiCnf, quantityDTO.blockedNumDiCnf.get());
|
||||||
|
|
||||||
@ -492,7 +495,7 @@ public class DialogInputQuantity {
|
|||||||
|
|
||||||
if(quantityDTO.qtaCnfNotificationEnabled) {
|
if(quantityDTO.qtaCnfNotificationEnabled) {
|
||||||
|
|
||||||
quantityDTO.blockedQtaPerCnf.set(!(quantityDTO.qtaCnf.get(true) == 0 || quantityDTO.qtaCnf.get().toString() == ""));
|
quantityDTO.blockedQtaPerCnf.set(!(quantityDTO.qtaCnf.get(true) == 0 || quantityDTO.qtaCnf.get().toString().equals("")));
|
||||||
|
|
||||||
toggleTextInputLayoutError(txlInputQtaPerCnf, quantityDTO.blockedQtaPerCnf.get());
|
toggleTextInputLayoutError(txlInputQtaPerCnf, quantityDTO.blockedQtaPerCnf.get());
|
||||||
|
|
||||||
@ -527,7 +530,7 @@ public class DialogInputQuantity {
|
|||||||
|
|
||||||
if (quantityDTO.qtaTotNotificationEnabled) {
|
if (quantityDTO.qtaTotNotificationEnabled) {
|
||||||
|
|
||||||
quantityDTO.blockedQtaTot.set(!(quantityDTO.qtaTot.get(true) == 0 || quantityDTO.qtaTot.get().toString() == ""));
|
quantityDTO.blockedQtaTot.set(!(quantityDTO.qtaTot.get(true) == 0 || quantityDTO.qtaTot.get().toString().equals("")));
|
||||||
|
|
||||||
toggleTextInputLayoutError(txlInputQtaTot, quantityDTO.blockedQtaTot.get());
|
toggleTextInputLayoutError(txlInputQtaTot, quantityDTO.blockedQtaTot.get());
|
||||||
|
|
||||||
|
|||||||
BIN
app/src/main/res/drawable/integry_round_icon.png
Normal file
BIN
app/src/main/res/drawable/integry_round_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
@ -30,16 +30,18 @@
|
|||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:src="@mipmap/ic_launcher"
|
android:src="@drawable/integry_round_icon"
|
||||||
android:paddingTop="12dp"
|
android:adjustViewBounds="true"
|
||||||
android:paddingBottom="12dp"
|
android:paddingTop="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
android:layout_gravity="center"/>
|
android:layout_gravity="center"/>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/toolbar_title"
|
android:id="@+id/toolbar_title"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/app_name"
|
android:text="@string/integry"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
android:letterSpacing="-0.05"
|
android:letterSpacing="-0.05"
|
||||||
style="@style/AppTheme.NewMaterial.Text.ToolbarTitle"
|
style="@style/AppTheme.NewMaterial.Text.ToolbarTitle"
|
||||||
android:layout_gravity="center"/>
|
android:layout_gravity="center"/>
|
||||||
@ -56,7 +58,6 @@
|
|||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
style="@style/AppTheme.NewMaterial.Text.ToolbarTitle"/>
|
style="@style/AppTheme.NewMaterial.Text.ToolbarTitle"/>
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.SearchView
|
<androidx.appcompat.widget.SearchView
|
||||||
android:id="@+id/main_search"
|
android:id="@+id/main_search"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|||||||
@ -300,7 +300,7 @@
|
|||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="numberDecimal"
|
android:inputType="number"
|
||||||
android:hint="@string/num_pcks"
|
android:hint="@string/num_pcks"
|
||||||
android:gravity="end"
|
android:gravity="end"
|
||||||
app:binding="@{quantityViewModel.numCnf}" >
|
app:binding="@{quantityViewModel.numCnf}" >
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name" translatable="false">Integry WMS</string>
|
<string name="app_name" translatable="false">Integry WMS</string>
|
||||||
|
<string name="integry" translatable="false">Integry</string>
|
||||||
|
|
||||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||||
|
|||||||
2131
images/RoundLogoWithText.ai
Normal file
2131
images/RoundLogoWithText.ai
Normal file
File diff suppressed because one or more lines are too long
@ -8,6 +8,7 @@ import androidx.annotation.RequiresApi
|
|||||||
import androidx.core.widget.NestedScrollView
|
import androidx.core.widget.NestedScrollView
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewTreeObserver
|
||||||
import android.widget.ScrollView
|
import android.widget.ScrollView
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
||||||
@ -33,6 +34,15 @@ open class WaterfallToolbar : androidx.cardview.widget.CardView {
|
|||||||
addRecyclerViewScrollListener()
|
addRecyclerViewScrollListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var recyclerViewScrollListener : RecyclerView.OnScrollListener = object : RecyclerView.OnScrollListener() {
|
||||||
|
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
||||||
|
super.onScrolled(recyclerView, dx, dy)
|
||||||
|
// real position must always get updated
|
||||||
|
realPosition.value = realPosition.value + dy
|
||||||
|
mutualScrollListenerAction()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The scroll view whose scroll is going to be listened
|
* The scroll view whose scroll is going to be listened
|
||||||
*/
|
*/
|
||||||
@ -42,15 +52,27 @@ open class WaterfallToolbar : androidx.cardview.widget.CardView {
|
|||||||
addScrollViewScrollListener()
|
addScrollViewScrollListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var scrollViewScrollListener : ViewTreeObserver.OnScrollChangedListener = ViewTreeObserver.OnScrollChangedListener {
|
||||||
|
// real position must always get updated
|
||||||
|
realPosition.value = scrollView!!.scrollY
|
||||||
|
mutualScrollListenerAction()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The scroll view whose scroll is going to be listened
|
* The scroll view whose scroll is going to be listened
|
||||||
*/
|
*/
|
||||||
var nestedScrollView: NestedScrollView? = null
|
var nestedScrollView: NestedScrollView? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
field = value
|
field = value
|
||||||
addNestedScrollViewScrollListener()
|
if (value != null) addNestedScrollViewScrollListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var nestedScrollViewScrollListener : ViewTreeObserver.OnScrollChangedListener = ViewTreeObserver.OnScrollChangedListener {
|
||||||
|
// real position must always get updated
|
||||||
|
realPosition.value = nestedScrollView!!.scrollY
|
||||||
|
mutualScrollListenerAction()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The three variables ahead are null safe, since they are always set
|
* The three variables ahead are null safe, since they are always set
|
||||||
* at least once in init() and a null value can't be assigned to them
|
* at least once in init() and a null value can't be assigned to them
|
||||||
@ -144,11 +166,24 @@ open class WaterfallToolbar : androidx.cardview.widget.CardView {
|
|||||||
init(context, attrs)
|
init(context, attrs)
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun resetElevation() {
|
fun resetElevation() {
|
||||||
realPosition = Px(0)
|
realPosition = Px(0)
|
||||||
cardElevation = 0f
|
cardElevation = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun resetAll() {
|
||||||
|
resetElevation()
|
||||||
|
|
||||||
|
removeNestedScrollViewScrollListener()
|
||||||
|
nestedScrollView = null
|
||||||
|
|
||||||
|
removeRecyclerViewScrollListener()
|
||||||
|
recyclerView = null
|
||||||
|
|
||||||
|
removeScrollViewScrollListener()
|
||||||
|
scrollView = null
|
||||||
|
}
|
||||||
|
|
||||||
private fun init(context: Context?, attrs: AttributeSet?) {
|
private fun init(context: Context?, attrs: AttributeSet?) {
|
||||||
// leave card corners square
|
// leave card corners square
|
||||||
radius = 0f
|
radius = 0f
|
||||||
@ -183,29 +218,27 @@ open class WaterfallToolbar : androidx.cardview.widget.CardView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun addRecyclerViewScrollListener() {
|
private fun addRecyclerViewScrollListener() {
|
||||||
recyclerView?.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
recyclerView?.addOnScrollListener(recyclerViewScrollListener)
|
||||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
}
|
||||||
super.onScrolled(recyclerView, dx, dy)
|
|
||||||
// real position must always get updated
|
private fun removeRecyclerViewScrollListener() {
|
||||||
realPosition.value = realPosition.value + dy
|
recyclerView?.removeOnScrollListener(recyclerViewScrollListener)
|
||||||
mutualScrollListenerAction()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addScrollViewScrollListener() {
|
private fun addScrollViewScrollListener() {
|
||||||
scrollView?.viewTreeObserver?.addOnScrollChangedListener {
|
scrollView?.viewTreeObserver?.addOnScrollChangedListener(scrollViewScrollListener)
|
||||||
// real position must always get updated
|
}
|
||||||
realPosition.value = scrollView!!.scrollY
|
|
||||||
mutualScrollListenerAction()
|
private fun removeScrollViewScrollListener() {
|
||||||
}
|
scrollView?.viewTreeObserver?.removeOnScrollChangedListener(scrollViewScrollListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addNestedScrollViewScrollListener() {
|
private fun addNestedScrollViewScrollListener() {
|
||||||
nestedScrollView?.viewTreeObserver?.addOnScrollChangedListener {
|
nestedScrollView?.viewTreeObserver?.addOnScrollChangedListener(nestedScrollViewScrollListener)
|
||||||
realPosition.value = nestedScrollView!!.scrollY
|
}
|
||||||
mutualScrollListenerAction()
|
|
||||||
}
|
private fun removeNestedScrollViewScrollListener() {
|
||||||
|
nestedScrollView?.viewTreeObserver?.removeOnScrollChangedListener(nestedScrollViewScrollListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user