Completata implementazione di versamento materiale a produzione.

This commit is contained in:
Giuseppe Scorrano 2019-05-21 19:16:40 +02:00
parent 7aa93f9489
commit 88be504918
42 changed files with 1350 additions and 240 deletions

Binary file not shown.

1
.idea/gradle.xml generated
View File

@ -12,6 +12,7 @@
<option value="$PROJECT_DIR$/barcode_base_library" />
<option value="$PROJECT_DIR$/dynamic__base" />
<option value="$PROJECT_DIR$/dynamic_vgalimenti" />
<option value="$PROJECT_DIR$/honeywellscannerlibrary" />
<option value="$PROJECT_DIR$/pointmobilescannerlibrary" />
<option value="$PROJECT_DIR$/zebrascannerlibrary" />
</set>

1
.idea/modules.xml generated
View File

@ -7,6 +7,7 @@
<module fileurl="file://$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" filepath="$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" />
<module fileurl="file://$PROJECT_DIR$/dynamic__base/dynamic__base.iml" filepath="$PROJECT_DIR$/dynamic__base/dynamic__base.iml" />
<module fileurl="file://$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" filepath="$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" />
<module fileurl="file://$PROJECT_DIR$/honeywellscannerlibrary/honeywellscannerlibrary.iml" filepath="$PROJECT_DIR$/honeywellscannerlibrary/honeywellscannerlibrary.iml" />
<module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" />
<module fileurl="file://$PROJECT_DIR$/zebrascannerlibrary/zebrascannerlibrary.iml" filepath="$PROJECT_DIR$/zebrascannerlibrary/zebrascannerlibrary.iml" />
</modules>

View File

@ -149,6 +149,7 @@ dependencies {
implementation project(':pointmobilescannerlibrary')
implementation project(':zebrascannerlibrary')
implementation project(path: ':barcode_base_library')
implementation project(path: ':honeywellscannerlibrary')
}
repositories {
mavenCentral()

View File

@ -35,6 +35,7 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.main.MainFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
@ -152,6 +153,10 @@ public class MainActivity extends AppCompatActivity
// fragment = UltimeConsegneClienteFragment.newInstance();
// this.adaptViewToFragment(fragment);
// }
else if (id == R.id.nav_prod_versamento_materiale) {
fragment = ProdVersamentoMaterialeFragment.newInstance();
this.adaptViewToFragment(fragment);
}
else if(id == R.id.nav_settings){
fragment = new MainSettingsFragment();

View File

@ -15,6 +15,8 @@ public class CommonConst {
public static String COMMESSA_MAG = "MAG";
public static String DEFAULT_ANONYMOUS_UL_SERIE = "UL";
public static int NUMBER_OF_DECIMAL_DIGITS = 3;
}
public static class Files {

View File

@ -132,6 +132,49 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
});
}
public static void createColloScaricoDaCarico(MtbColt sourceMtbColt, MtbDepoPosizione posizione, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt cloneUL = ((MtbColt) sourceMtbColt.clone());
cloneUL.setMtbCols(null)
.setNumCollo(null)
.setDataCollo((String) null)
.setSegno(-1)
.setGestione(GestioneEnum.LAVORAZIONE)
.setOperation(CommonModelConsts.OPERATION.INSERT);
if(posizione != null) {
cloneUL.setPosizione(posizione.getPosizione());
}
for(int i = 0; i < cloneUL.getMtbColr().size(); i++) {
cloneUL.getMtbColr().get(i)
.setNumCollo(null)
.setDataCollo(null)
.setRiga(null)
.setGestione(GestioneEnum.LAVORAZIONE)
.setDataColloRif(sourceMtbColt.getDataColloD())
.setNumColloRif(sourceMtbColt.getNumCollo())
.setGestioneRif(sourceMtbColt.getGestione())
.setSerColloRif(sourceMtbColt.getSerCollo())
.setOperation(CommonModelConsts.OPERATION.INSERT);
}
saveCollo(cloneUL, new ISimpleOperationCallback<MtbColt>() {
@Override
public void onSuccess(MtbColt value) {
if(onComplete != null) onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
if(onFailed != null) onFailed.run(ex);
}
});
}
public static void createColloFromEtichettaAnonima(BarcodeScanDTO barcodeScanDTO, GestioneEnum gestione, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
createColloFromEtichettaAnonima(barcodeScanDTO.getStringValue(), gestione, onComplete, onFailed);

View File

@ -66,7 +66,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
Log.e("ProcessSql", t.toString());
callback.onFailed(new Exception(t));
UtilityLogger.errorMe(new Exception(t), nativeSql);
// UtilityLogger.errorMe(new Exception(t), nativeSql);
}
});

View File

@ -6,6 +6,7 @@ import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
@ -25,7 +26,8 @@ public class BarcodeManager {
private static Class<? extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{
PointMobileBarcodeReader.class,
ZebraBarcodeReader.class
ZebraBarcodeReader.class,
// HoneyWellBarcodeReader.class
};

View File

@ -5,6 +5,9 @@ import java.math.RoundingMode;
import androidx.databinding.BaseObservable;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
public class BindableFloat extends BaseObservable {
private Float value;
@ -13,7 +16,11 @@ public class BindableFloat extends BaseObservable {
}
public BigDecimal getBigDecimal() {
return new BigDecimal(get()).setScale(3, RoundingMode.CEILING);
int numberOfDigits = UtilityNumber.countNumberOfDecimalDigits(get());
if(numberOfDigits > CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS) numberOfDigits = CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS;
return new BigDecimal(get());
}
public Float get(boolean defaultIfNull) {

View File

@ -0,0 +1,392 @@
package it.integry.integrywmsnative.core.expansion;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Comparator;
import java.util.concurrent.atomic.AtomicReference;
public class AtomicBigDecimal extends Number implements Comparable<Object> {
private static final long serialVersionUID = -94825735363453200L;
private AtomicReference<BigDecimal> value;
// Constructors
public AtomicBigDecimal() {
this(0.0);
}
public AtomicBigDecimal(double initVal) {
this(new BigDecimal(initVal));
}
public AtomicBigDecimal(BigDecimal initVal) {
value = new AtomicReference(initVal);
}
public AtomicBigDecimal(Object initVal) {
this(objectToBigDecimal(initVal));
}
// Atomic methods
public BigDecimal get() {
return value.get();
}
public void set(BigDecimal newVal) {
value.set(newVal);
}
public void set(Object newVal) {
set(objectToBigDecimal(newVal));
}
public void set(double newVal) {
set(new BigDecimal(newVal));
}
public void lazySet(BigDecimal newVal) {
set(newVal);
}
public void lazySet(Object newVal) {
set(newVal);
}
public void lazySet(double newVal) {
set(newVal);
}
public boolean compareAndSet(BigDecimal expect, BigDecimal update) {
while (true) {
BigDecimal origVal = get();
if (origVal.compareTo(expect) == 0) {
if (value.compareAndSet(origVal, update))
return true;
} else {
return false;
}
}
}
public boolean compareAndSet(double expect, double update) {
return compareAndSet(new BigDecimal(expect), new BigDecimal(update));
}
public boolean compareAndSet(Object expect, Object update) {
return compareAndSet(objectToBigDecimal(expect),
objectToBigDecimal(update));
}
public boolean weakCompareAndSet(BigDecimal expect, BigDecimal update) {
return compareAndSet(expect, update);
}
public boolean weakCompareAndSet(double expect, double update) {
return compareAndSet(expect, update);
}
public boolean weakCompareAndSet(Object expect, Object update) {
return compareAndSet(expect, update);
}
public BigDecimal getAndSet(BigDecimal setVal) {
while (true) {
BigDecimal origVal = get();
if (compareAndSet(origVal, setVal)) return origVal;
}
}
public double getAndSet(double setVal) {
return getAndSet(new BigDecimal(setVal)).doubleValue();
}
public BigDecimal getAndSet(Object setVal) {
return getAndSet(objectToBigDecimal(setVal));
}
public BigDecimal getAndAdd(BigDecimal delta) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.add(delta);
if (compareAndSet(origVal, newVal)) return origVal;
}
}
public BigDecimal addAndGet(BigDecimal delta) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.add(delta);
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public double getAndAdd(double delta) {
return getAndAdd(new BigDecimal(delta)).doubleValue();
}
public double addAndGet(double delta) {
return addAndGet(new BigDecimal(delta)).doubleValue();
}
public BigDecimal getAndAdd(Object delta) {
return getAndAdd(objectToBigDecimal(delta));
}
public BigDecimal addAndGet(Object delta) {
return addAndGet(objectToBigDecimal(delta));
}
public BigDecimal getAndIncrement() {
return getAndAdd(BigDecimal.ONE);
}
public BigDecimal getAndDecrement() {
return getAndAdd(BigDecimal.ONE.negate());
}
public BigDecimal incrementAndGet() {
return addAndGet(BigDecimal.ONE);
}
public BigDecimal decrementAndGet() {
return addAndGet(BigDecimal.ONE.negate());
}
public double altGetAndIncrement() {
return getAndIncrement().doubleValue();
}
public double altGetAndDecrement() {
return getAndDecrement().doubleValue();
}
public double altIncrementAndGet() {
return incrementAndGet().doubleValue();
}
public double altDecrementAndGet() {
return decrementAndGet().doubleValue();
}
public BigDecimal getAndMultiply(BigDecimal multiplicand) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.multiply(multiplicand);
if (compareAndSet(origVal, newVal)) return origVal;
}
}
public BigDecimal multiplyAndGet(BigDecimal multiplicand) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.multiply(multiplicand);
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public BigDecimal getAndDivide(BigDecimal divisor) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.divide(divisor);
if (compareAndSet(origVal, newVal)) return origVal;
}
}
public BigDecimal divideAndGet(BigDecimal divisor) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.divide(divisor);
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public BigDecimal getAndMultiply(Object multiplicand) {
return getAndMultiply(objectToBigDecimal(multiplicand));
}
public BigDecimal multiplyAndGet(Object multiplicand) {
return multiplyAndGet(objectToBigDecimal(multiplicand));
}
public BigDecimal getAndDivide(Object divisor) {
return getAndDivide(objectToBigDecimal(divisor));
}
public BigDecimal divideAndGet(Object divisor) {
return divideAndGet(objectToBigDecimal(divisor));
}
// Methods of the Number class
@Override
public int intValue() {
return getBigDecimalValue().intValue();
}
@Override
public long longValue() {
return getBigDecimalValue().longValue();
}
@Override
public float floatValue() {
return getBigDecimalValue().floatValue();
}
@Override
public double doubleValue() {
return getBigDecimalValue().doubleValue();
}
@Override
public byte byteValue() {
return (byte) intValue();
}
@Override
public short shortValue() {
return (short) intValue();
}
public char charValue() {
return (char) intValue();
}
public BigDecimal getBigDecimalValue() {
return get();
}
public Double getDoubleValue() {
return Double.valueOf(doubleValue());
}
public boolean isNaN() {
return getDoubleValue().isNaN();
}
public boolean isInfinite() {
return getDoubleValue().isInfinite();
}
// Methods of the BigDecimal Class
public BigDecimal abs() {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.abs();
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public BigDecimal max(BigDecimal val) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.max(val);
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public BigDecimal min(BigDecimal val) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.min(val);
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public BigDecimal negate() {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.negate();
if (compareAndSet(origVal, newVal)) return newVal;
}
}
public BigDecimal pow(int n) {
while (true) {
BigDecimal origVal = get();
BigDecimal newVal = origVal.pow(n);
if (compareAndSet(origVal, newVal)) return newVal;
}
}
// Support methods for hashing and comparing
@Override
public String toString() {
return get().toString();
}
public String toEngineeringString() {
return get().toEngineeringString();
}
public String toPlainString() {
return get().toPlainString();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
try {
return (compareTo(obj) == 0);
} catch (Exception e) {
return false;
}
}
@Override
public int hashCode() {
return get().hashCode();
}
public int compareTo(AtomicBigDecimal aValue) {
return get().compareTo(aValue.get());
}
public int compareTo(Object aValue) {
return get().compareTo(objectToBigDecimal(aValue));
}
public int compareTo(double aValue) {
return get().compareTo(new BigDecimal(aValue));
}
public static AtomicDoubleComparator comparator =
new AtomicDoubleComparator();
public static class AtomicDoubleComparator
implements Comparator<Object> {
public int compare(AtomicBigDecimal d1, AtomicBigDecimal d2) {
return d1.compareTo(d2);
}
public int compare(Object d1, Object d2) {
return objectToBigDecimal(d1).compareTo(objectToBigDecimal(d2));
}
public int compareReverse(AtomicBigDecimal d1, AtomicBigDecimal d2) {
return d2.compareTo(d1);
}
public int compareReverse(Object d1, Object d2) {
return objectToBigDecimal(d2).compareTo(objectToBigDecimal(d1));
}
}
// Support Routines and constants
private static BigDecimal objectToBigDecimal(Object obj) {
if (obj instanceof AtomicBigDecimal) {
return ((AtomicBigDecimal) obj).get();
}
if (obj instanceof BigDecimal) {
return (BigDecimal) obj;
} else if (obj instanceof BigInteger) {
return new BigDecimal((BigInteger) obj);
} else if (obj instanceof String) {
return new BigDecimal((String) obj);
} else if (obj instanceof Number) {
return new BigDecimal(((Number) obj).doubleValue());
} else {
return new BigDecimal(obj.toString());
}
}
}

View File

@ -8,6 +8,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
@ -230,6 +231,13 @@ public class MtbColr extends EntityBase implements Parcelable {
return gestione;
}
public MtbColr setGestione(GestioneEnum gestione) {
this.gestione = gestione.getText();
return this;
}
public MtbColr setGestione(String gestione) {
this.gestione = gestione;
return this;

View File

@ -5,8 +5,12 @@ import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import it.integry.integrywmsnative.core.CommonConst;
public class UtilityNumber {
private static DecimalFormat decimalFormatInstance;
public static String decimalToString(Float bigDecimal){
if(bigDecimal == null) return "0";
return decimalToString(bigDecimal, 3);
@ -35,4 +39,28 @@ public class UtilityNumber {
return decimalFormat.format(floatValue);
}
public static DecimalFormat getNumberFormatInstance() {
if(decimalFormatInstance == null) {
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.getDefault());
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
decimalFormatInstance = new DecimalFormat();
decimalFormatInstance.setMaximumFractionDigits(CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS);
decimalFormatInstance.setDecimalFormatSymbols(otherSymbols);
decimalFormatInstance.setGroupingUsed(false);
}
return decimalFormatInstance;
}
public static int countNumberOfDecimalDigits(Float value) {
String text = getNumberFormatInstance().format(Math.abs(value));
int integerPlaces = text.indexOf('.');
int decimalPlaces = text.length() - integerPlaces - 1;
return decimalPlaces;
}
}

View File

@ -18,7 +18,7 @@ public class UtilityPosizione {
char LChar = mtbDepoPosizione.getPosizione().charAt(mtbDepoPosizione.getPosizione().length()-2);
if(LChar == 'L') {
if(LChar == 'L' && mtbDepoPosizione.getPosizione().length() > 2) {
return true;
} else return false;
}

View File

@ -222,6 +222,13 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
// ((MainActivity) getActivity()).setItem(R.id.nav_resi_cliente);
// }
@OnClick(R.id.fast_button_prod_versamento_materiale)
public void onClickProdVersamentoMateriale(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_prod_versamento_materiale);
}
@Override
public void setScrollToolbar(ElevatedToolbar toolbar) {
mToolbar = toolbar;

View File

@ -332,7 +332,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
cloneMtbColr
.setGestioneRif(cloneMtbColr.getGestione())
.setGestione(null);
.setGestione((String) null);
cloneMtbColr
.setSerColloRif(cloneMtbColr.getSerCollo())

View File

@ -0,0 +1,92 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale;
import android.content.Context;
import android.os.Bundle;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
import it.integry.integrywmsnative.gest.versamento_merce.viewmodel.VersamentoMerceViewModel;
public class ProdVersamentoMaterialeFragment extends Fragment implements ITitledFragment {
private FragmentProdVersamentoMaterialeBinding mBinding;
private ProdVersamentoMaterialViewModel mViewmodel;
private ProdVersamentoMaterialHelper mHelper;
public ProdVersamentoMaterialeFragment() {
// Required empty public constructor
}
public static ProdVersamentoMaterialeFragment newInstance() {
ProdVersamentoMaterialeFragment fragment = new ProdVersamentoMaterialeFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewmodel = new ProdVersamentoMaterialViewModel();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_versamento_materiale, container, false);
init();
return mBinding.getRoot();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
}
private void init() {
mHelper = new ProdVersamentoMaterialHelper(getActivity());
mViewmodel.init(getActivity(), mBinding, mHelper, () -> {
((IPoppableActivity) getActivity()).pop();
});
mViewmodel.openLU();
}
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
titleText.setText(context.getText(R.string.prod_versamento_materiale_title_fragment).toString());
}
}

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.core;
import android.content.Context;
public class ProdVersamentoMaterialHelper {
private Context mContext;
public ProdVersamentoMaterialHelper(Context context) {
this.mContext = context;
}
}

View File

@ -0,0 +1,125 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel;
import android.app.Activity;
import android.content.Context;
import android.text.Html;
import android.text.SpannableString;
import androidx.databinding.ObservableField;
import java.util.Objects;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
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.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
public class ProdVersamentoMaterialViewModel {
private Context mContext;
private FragmentProdVersamentoMaterialeBinding mBinding;
private ProdVersamentoMaterialHelper mHelper;
private Runnable mOnVersamentoCompleted;
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
public void init(Activity context, FragmentProdVersamentoMaterialeBinding binding, ProdVersamentoMaterialHelper helper, Runnable onVersamentoCompleted) {
mContext = context;
mBinding = binding;
mHelper = helper;
mOnVersamentoCompleted = onVersamentoCompleted;
BarcodeManager.enable();
}
public void openLU() {
DialogScanOrCreateLU.make(mContext, true, mtbColt -> {
if(mtbColt == null) {
((IPoppableActivity)mContext).pop();
} else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){
if(mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("E' stata scansionata una UL già vuota")),
null, this::openLU).show();
} else {
setMtbColt(mtbColt);
choosePosition();
}
} else {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Sono accettate solamente UL di <b>Acquisto</b> o <b>Lavorazione</b> di <b>CARICO</b>")),
null, this::openLU).show();
}
}).show();
}
private void choosePosition() {
DialogAskPositionOfLU.makeBase(mContext, null, mtbDepoPosizione -> {
if(mtbDepoPosizione != null && mtbColt.get() != null) {
createColloScarico(mtbDepoPosizione);
} else {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Si è verificato un errore. Riprovare")),
null, this::openLU).show();
}
}, ex -> {
UtilityExceptions.defaultException(mContext, ex);
}).show();
}
private void createColloScarico(MtbDepoPosizione mtbDepoPosizione) {
MtbColt cloneUL = ((MtbColt) mtbColt.get().clone());
cloneUL.setCodJfas(mtbDepoPosizione.getPosizione());
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(cloneUL, mtbDepoPosizione, generatedMtbColt -> {
showDataSavedDialog(() -> {
mOnVersamentoCompleted.run();
});
}, ex -> {
UtilityExceptions.defaultException(mContext, ex);
});
}
public void setMtbColt(MtbColt mtbColt) {
this.mtbColt.set(mtbColt);
}
public void resetMtbColt() {
this.mtbColt.set(null);
openLU();
}
private void showDataSavedDialog(Runnable onPositiveClick) {
DialogSimpleMessageHelper.makeSuccessDialog(
mContext,
mContext.getResources().getString(R.string.completed),
new SpannableString(mContext.getResources().getString(R.string.data_saved)),
null, onPositiveClick).show();
}
}

View File

@ -30,6 +30,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
@ -1046,7 +1047,20 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasaTotale));
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;
BigDecimal qtaDisponibile = item.getQtaCollo().subtract(new BigDecimal(qtaEvasaCurrentUL));
AtomicBigDecimal qtaTest = new AtomicBigDecimal();
Stream.of(item.getWithdrawRows())
.filter(x -> Objects.equals(x.getNumColloRif(), item.getNumCollo()) &&
x.getDataColloRifS().equalsIgnoreCase(item.getDataColloS()) &&
x.getSerColloRif().equalsIgnoreCase(item.getSerCollo()) &&
x.getGestioneRif().equalsIgnoreCase(item.getGestione()))
.forEach(x -> {
qtaTest.addAndGet(x.getQtaCol());
});
BigDecimal qtaDisponibile = item.getQtaCollo().subtract(qtaTest.get());
if(qtaDisponibile.floatValue() < 0) qtaDisponibile = BigDecimal.ZERO;
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()

View File

@ -279,7 +279,7 @@ public class VersamentoMerceViewModel {
MtbColr stornoSourceMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
stornoSourceMtbColr
.setGestione(null)
.setGestione((String) null)
.setNumCollo(null)
.setSerCollo(null)
.setDataCollo(null)
@ -302,7 +302,7 @@ public class VersamentoMerceViewModel {
}
cloneMtbColr
.setGestione(null)
.setGestione((String) null)
.setSerCollo(null)
.setNumCollo(null)
.setDataCollo(null);

View File

@ -153,15 +153,23 @@ public class DialogAskPositionOfLU {
askLivello();
BarcodeManager.enable();
} else {
updatePosizione(foundPosizione, () -> {
if(mtbColt != null) {
updatePosizione(foundPosizione, () -> {
completedFlow = true;
BarcodeManager.enable();
if(onComplete != null) onComplete.run(foundPosizione);
}, ex -> {
completedFlow = true;
BarcodeManager.enable();
onFailed.run(ex);
});
} else {
completedFlow = true;
BarcodeManager.enable();
if(onComplete != null) onComplete.run(foundPosizione);
}, ex -> {
completedFlow = true;
mDialog.dismiss();
BarcodeManager.enable();
onFailed.run(ex);
});
}
}
} else {
@ -182,19 +190,26 @@ public class DialogAskPositionOfLU {
if(foundPosizione != null) {
resetLevelError();
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.changePosizione(mtbColt, foundPosizione, () -> {
progressDialog.dismiss();
if(mtbColt != null) {
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.changePosizione(mtbColt, foundPosizione, () -> {
progressDialog.dismiss();
completedFlow = true;
if(onComplete != null) onComplete.run(foundPosizione);
mDialog.dismiss();
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
completedFlow = true;
if(onFailed != null) onFailed.run(ex);
mDialog.dismiss();
});
} else {
completedFlow = true;
onComplete.run(foundPosizione);
if(onComplete != null) onComplete.run(foundPosizione);
mDialog.dismiss();
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
completedFlow = true;
onFailed.run(ex);
mDialog.dismiss();
});
}
} else {
setLevelError(mContext.getResources().getString(R.string.not_valid));

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -91,15 +91,20 @@
</LinearLayout>
<androidx.appcompat.widget.AppCompatButton
<com.google.android.material.button.MaterialButton
android:id="@+id/remove_art_filter_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.DangerOutline"
android:layout_alignParentEnd="true"
android:backgroundTint="@color/red_600"
android:textColor="@android:color/white"
android:text="@string/remove_filter_button"
android:onClick="@{() -> viewmodel.removeListFilter()}"
android:text="@string/remove_filter_button"/>
app:strokeColor="@color/red_600"/>
</RelativeLayout>

View File

@ -50,7 +50,7 @@
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -185,253 +185,382 @@
</RelativeLayout>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:orientation="horizontal"
android:weightSum="1"
android:padding="8dp">
<LinearLayout
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guide_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5">
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_accettazione"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_accettazione_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/accettazione_title_fragment"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_rettifica_giacenze"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_rettifica_giacenze_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/rettifica_giacenze_fragment_title"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_picking_libero"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_picking_libero_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/free_picking"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
<TextView
android:id="@+id/general_dashboard_group_title"
style="@style/AppTheme.NewMaterial.Text.TextBoxGroupTitleDashboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5">
app:layout_constraintTop_toTopOf="parent"
android:text="@string/general" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_accettazione"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintTop_toBottomOf="@id/general_dashboard_group_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_1"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_spedizione"
style="@style/Widget.MaterialComponents.CardView"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<LinearLayout
android:layout_width="match_parent"
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
android:adjustViewBounds="true"
android:src="@drawable/ic_accettazione_96" />
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_spedizione_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/accettazione_title_fragment"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/vendita_title_fragment"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_versamento"
style="@style/Widget.MaterialComponents.CardView"
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_spedizione"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintTop_toBottomOf="@id/general_dashboard_group_title"
app:layout_constraintStart_toEndOf="@id/guide_1"
app:layout_constraintEnd_toEndOf="parent"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<LinearLayout
android:layout_width="match_parent"
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_spedizione_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/vendita_title_fragment"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_rettifica_giacenze"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintTop_toBottomOf="@id/fast_button_accettazione"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_1"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_rettifica_giacenze_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
android:text="@string/rettifica_giacenze_fragment_title"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_versamento_merce_96" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/versamento_merce_fragment_title"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_versamento"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintTop_toBottomOf="@id/fast_button_spedizione"
app:layout_constraintStart_toEndOf="@id/guide_1"
app:layout_constraintEnd_toEndOf="parent"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!--<com.google.android.material.card.MaterialCardView-->
<!--android:id="@+id/fast_button_resi_clienti"-->
<!--style="@style/Widget.MaterialComponents.CardView"-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_versamento_merce_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/versamento_merce_fragment_title"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_picking_libero"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintTop_toBottomOf="@id/fast_button_rettifica_giacenze"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_1"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_picking_libero_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/free_picking"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!--<com.google.android.material.card.MaterialCardView-->
<!--android:id="@+id/fast_button_resi_clienti"-->
<!--style="@style/Widget.MaterialComponents.CardView"-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_margin="8dp"-->
<!--app:layout_constraintTop_toBottomOf="@id/fast_button_versamento"-->
<!--app:layout_constraintStart_toEndOf="@id/guide_1"-->
<!--app:layout_constraintEnd_toEndOf="parent"-->
<!--app:cardBackgroundColor="@android:color/white"-->
<!--app:cardCornerRadius="4dp">-->
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_margin="8dp"-->
<!--app:cardBackgroundColor="@android:color/white"-->
<!--app:cardCornerRadius="4dp">-->
<!--android:gravity="center_horizontal"-->
<!--android:orientation="vertical"-->
<!--android:padding="8dp">-->
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--<ImageView-->
<!--android:layout_width="64sp"-->
<!--android:layout_height="wrap_content"-->
<!--android:adjustViewBounds="true"-->
<!--android:src="@drawable/ic_versamento_merce_96" />-->
<!--<androidx.appcompat.widget.AppCompatTextView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="16dp"-->
<!--android:gravity="center_horizontal"-->
<!--android:orientation="vertical"-->
<!--android:padding="8dp">-->
<!--android:text="@string/fragment_ultime_consegne_cliente_title"-->
<!--android:textAllCaps="true"-->
<!--android:textColor="@color/grey_700"-->
<!--android:textStyle="bold" />-->
<!--<ImageView-->
<!--android:layout_width="64sp"-->
<!--android:layout_height="wrap_content"-->
<!--android:adjustViewBounds="true"-->
<!--android:src="@drawable/ic_versamento_merce_96" />-->
<!--</LinearLayout>-->
<!--</com.google.android.material.card.MaterialCardView>-->
<!--<androidx.appcompat.widget.AppCompatTextView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="16dp"-->
<!--android:gravity="center_horizontal"-->
<!--android:text="@string/fragment_ultime_consegne_cliente_title"-->
<!--android:textAllCaps="true"-->
<!--android:textColor="@color/grey_700"-->
<!--android:textStyle="bold" />-->
<!--</LinearLayout>-->
<!--</com.google.android.material.card.MaterialCardView>-->
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guide_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<TextView
android:id="@+id/prod_dashboard_group_title"
style="@style/AppTheme.NewMaterial.Text.TextBoxGroupTitleDashboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:text="@string/production" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_prod_versamento_materiale"
style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:layout_constraintTop_toBottomOf="@id/prod_dashboard_group_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_2"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_prod_versamento_materiale" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/prod_versamento_materiale_title_fragment"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!--<com.google.android.material.card.MaterialCardView-->
<!--android:id="@+id/fast_button_prod_recupero_materiale"-->
<!--style="@style/Widget.MaterialComponents.CardView"-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_margin="8dp"-->
<!--app:layout_constraintTop_toTopOf="parent"-->
<!--app:layout_constraintStart_toEndOf="@id/guide_2"-->
<!--app:layout_constraintEnd_toEndOf="parent"-->
<!--app:cardBackgroundColor="@android:color/white"-->
<!--app:cardCornerRadius="4dp">-->
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:gravity="center_horizontal"-->
<!--android:orientation="vertical"-->
<!--android:padding="8dp">-->
<!--<ImageView-->
<!--android:layout_width="64sp"-->
<!--android:layout_height="wrap_content"-->
<!--android:adjustViewBounds="true"-->
<!--android:src="@drawable/ic_spedizione_96" />-->
<!--<androidx.appcompat.widget.AppCompatTextView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="16dp"-->
<!--android:text="@string/vendita_title_fragment"-->
<!--android:textAllCaps="true"-->
<!--android:textColor="@color/grey_700"-->
<!--android:textStyle="bold" />-->
<!--</LinearLayout>-->
<!--</com.google.android.material.card.MaterialCardView>-->
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment">
</FrameLayout>
</layout>

View File

@ -31,6 +31,22 @@
<!--android:icon="@drawable/ic_barcode_96"-->
<!--android:title="@string/fragment_ultime_consegne_cliente_title" />-->
</group>
<group android:checkableBehavior="single" >
<item android:title="@string/production">
<menu>
<item
android:id="@+id/nav_prod_versamento_materiale"
android:icon="@drawable/ic_settings_24dp"
android:title="@string/prod_versamento_materiale_title_fragment" />
<!--<item-->
<!--android:id="@+id/nav_prod_recupera_materiale"-->
<!--android:icon="@drawable/ic_logout_24dp"-->
<!--android:title="Logout" />-->
</menu>
</item>
</group>
<!--
<item android:title="Communicate">
<menu>

View File

@ -201,4 +201,8 @@
<string name="exception_printer_not_found">Stampante non trovata</string>
<string name="action_select_all">Seleziona tutto</string>
<string name="general">Generale</string>
<string name="production">Produzione</string>
<string name="prod_versamento_materiale_title_fragment">Versamento materiale</string>
</resources>

View File

@ -206,6 +206,9 @@
<string name="action_select_all">Select all</string>
<string name="general">General</string>
<string name="production">Production</string>
<string name="prod_versamento_materiale_title_fragment">Deposit material</string>
</resources>

View File

@ -56,6 +56,14 @@
<item name="android:textSize">14sp</item>
</style>
<style name="AppTheme.NewMaterial.Text.TextBoxGroupTitleDashboard" parent="AppTheme.NewMaterial.Text">
<item name="android:textColor">@android:color/black</item>
<item name="android:textSize">16sp</item>
<item name="android:textAllCaps">true</item>
<item name="android:textAlignment">center</item>
<item name="android:textStyle">bold</item>
</style>
<style name="SplashTheme" parent="AppTheme.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background</item>
</style>

View File

@ -2,7 +2,7 @@
buildscript {
ext{
kotlin_version = '1.3.21'
kotlin_version = '1.3.31'
}
repositories {
@ -14,10 +14,10 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.android.tools.build:gradle:3.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.google.firebase:firebase-plugins:1.1.5'
classpath 'com.google.firebase:perf-plugin:1.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files

1
honeywellscannerlibrary/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build

View File

@ -0,0 +1,34 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation project(path: ':barcode_base_library')
}

Binary file not shown.

View File

@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@ -0,0 +1,27 @@
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

@ -0,0 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="it.integry.honeywellscannerlibrary">
<uses-permission android:name="com.honeywell.decode.permission.DECODE" />
</manifest>

View File

@ -0,0 +1,61 @@
package it.integry.honeywellscannerlibrary;
import android.content.Context;
import com.honeywell.aidc.AidcManager;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
import it.integry.plugins.barcode_base_library.extension.RunnableArgs;
import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class HoneyWellBarcodeReader implements BarcodeReaderInterface {
private Context mContext;
private boolean canGoOn = false;
public HoneyWellBarcodeReader(Context context) {
this.mContext = context;
AidcManager.create(context, new AidcManager.CreatedCallback() {
@Override
public void onCreated(AidcManager aidcManager) {
canGoOn = true;
}
});
while(!canGoOn) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public boolean isRightAdapter() {
return false;
}
@Override
public void init() throws BarcodeAdapterNotFoundException {
}
@Override
public void deinit() {
}
@Override
public void register(RunnableArgs<BarcodeScanDTO> onScanSuccessfull, RunnableArgs<Exception> onScanFailed) {
}
@Override
public String getAdapterName() {
return null;
}
}

View File

@ -0,0 +1,3 @@
<resources>
<string name="app_name">honeywellscannerlibrary</string>
</resources>

View File

@ -0,0 +1,17 @@
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 +1 @@
include ':app', ':pointmobilescannerlibrary', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base', ':zebrascannerlibrary'
include ':app', ':pointmobilescannerlibrary', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base', ':zebrascannerlibrary', ':honeywellscannerlibrary'