Creata gestione fabbisogni linea di produzione
This commit is contained in:
parent
278f13ca6d
commit
14035b4c92
@ -13,8 +13,10 @@ import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
|
||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiComponent;
|
||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule;
|
||||
import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdComponent;
|
||||
import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdModule;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdComponent;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdModule;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaComponent;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaModule;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent;
|
||||
@ -41,10 +43,11 @@ import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
|
||||
SpedizioneModule.class,
|
||||
AccettazionePickingModule.class,
|
||||
PickingResiModule.class,
|
||||
ProdPosizionamentoDaOrdModule.class,
|
||||
OrdiniUscitaElencoModule.class,
|
||||
DialogInputQuantityV2Module.class,
|
||||
DialogScanArtModule.class})
|
||||
DialogScanArtModule.class,
|
||||
ProdFabbisognoLineeProdModule.class,
|
||||
DialogAskMagazzinoProssimitaModule.class})
|
||||
public interface MainApplicationComponent {
|
||||
|
||||
MainActivityComponent.Factory mainActivityComponent();
|
||||
@ -55,11 +58,11 @@ public interface MainApplicationComponent {
|
||||
SpedizioneComponent.Factory spedizioneComponent();
|
||||
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
||||
PickingResiComponent.Factory pickingResiComponent();
|
||||
ProdPosizionamentoDaOrdComponent.Factory prodPosizionamentoDaOrdComponent();
|
||||
OrdiniUscitaElencoComponent.Factory prodOrdineLavorazioneElencoComponent();
|
||||
DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component();
|
||||
DialogScanArtComponent.Factory dialogScanArtComponent();
|
||||
|
||||
ProdFabbisognoLineeProdComponent.Factory prodFabbisognoLineeProdComponent();
|
||||
DialogAskMagazzinoProssimitaComponent.Factory dialogAskMagazzinoProssimitaComponent();
|
||||
|
||||
|
||||
void inject(AppContext appContext);
|
||||
|
||||
@ -6,6 +6,7 @@ import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||
@ -92,7 +93,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
||||
.setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title)
|
||||
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
|
||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
|
||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, 1)))
|
||||
.setFragmentFactory(ProdFabbisognoLineeProdFragment::newInstance))
|
||||
|
||||
.addItem(new MenuItem()
|
||||
.setID(R.id.nav_prod_versamento_materiale)
|
||||
|
||||
@ -6,7 +6,6 @@ import android.view.KeyEvent;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.exception.MyExceptionHandler;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
|
||||
public class BaseActivity extends AppCompatActivity {
|
||||
@ -15,7 +14,7 @@ public class BaseActivity extends AppCompatActivity {
|
||||
protected Dialog mCurrentProgress;
|
||||
|
||||
public BaseActivity() {
|
||||
Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, BaseActivity.class));
|
||||
//Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, BaseActivity.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,14 +1,17 @@
|
||||
package it.integry.integrywmsnative.core.expansion;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
|
||||
public class BaseDialogFragment extends DialogFragment {
|
||||
|
||||
private boolean mBarcodeListener = false;
|
||||
private Dialog mCurrentProgress;
|
||||
|
||||
public BaseDialogFragment() {
|
||||
super();
|
||||
@ -34,4 +37,17 @@ public class BaseDialogFragment extends DialogFragment {
|
||||
public void setBarcodeListener(boolean listen) {
|
||||
this.mBarcodeListener = listen;
|
||||
}
|
||||
|
||||
protected void openProgress() {
|
||||
if (this.mCurrentProgress == null) {
|
||||
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||
}
|
||||
}
|
||||
|
||||
protected void closeProgress() {
|
||||
if (mCurrentProgress != null) {
|
||||
mCurrentProgress.dismiss();
|
||||
mCurrentProgress = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package it.integry.integrywmsnative.core.expansion;
|
||||
|
||||
import android.app.Dialog;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
|
||||
public class BaseFragment extends Fragment {
|
||||
|
||||
protected Dialog mCurrentProgress;
|
||||
|
||||
|
||||
protected void openProgress() {
|
||||
if (this.mCurrentProgress == null) {
|
||||
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||
}
|
||||
}
|
||||
|
||||
protected void closeProgress() {
|
||||
if (mCurrentProgress != null) {
|
||||
mCurrentProgress.dismiss();
|
||||
mCurrentProgress = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ package it.integry.integrywmsnative.core.model;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
public class GtbAnag {
|
||||
public class GtbAnag extends EntityBase {
|
||||
|
||||
private String codAnag;
|
||||
private String ragSoc;
|
||||
@ -45,6 +45,10 @@ public class GtbAnag {
|
||||
private String precode;
|
||||
private Boolean insDestinatario;
|
||||
|
||||
public GtbAnag() {
|
||||
this.type = "gtb_anag";
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
@ -0,0 +1,180 @@
|
||||
package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class JtbFasi extends EntityBase {
|
||||
|
||||
private String codJfas;
|
||||
private String codJfasParent;
|
||||
private String descrizione;
|
||||
private String descrizEstesa;
|
||||
private String codMfas;
|
||||
private String pathIcona;
|
||||
private String umAllocazione;
|
||||
private BigDecimal maxAllocazione;
|
||||
private String codJCal;
|
||||
private String idJfas;
|
||||
private String flagAttivo;
|
||||
private String flagCheck;
|
||||
private String umProd;
|
||||
private BigDecimal prodStd;
|
||||
private String codMdepLav;
|
||||
private String tipoProd;
|
||||
|
||||
public JtbFasi() {
|
||||
this.type = "jtb_fasi";
|
||||
}
|
||||
|
||||
public String getCodJfas() {
|
||||
return codJfas;
|
||||
}
|
||||
|
||||
public JtbFasi setCodJfas(String codJfas) {
|
||||
this.codJfas = codJfas;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJfasParent() {
|
||||
return codJfasParent;
|
||||
}
|
||||
|
||||
public JtbFasi setCodJfasParent(String codJfasParent) {
|
||||
this.codJfasParent = codJfasParent;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public JtbFasi setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizEstesa() {
|
||||
return descrizEstesa;
|
||||
}
|
||||
|
||||
public JtbFasi setDescrizEstesa(String descrizEstesa) {
|
||||
this.descrizEstesa = descrizEstesa;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMfas() {
|
||||
return codMfas;
|
||||
}
|
||||
|
||||
public JtbFasi setCodMfas(String codMfas) {
|
||||
this.codMfas = codMfas;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPathIcona() {
|
||||
return pathIcona;
|
||||
}
|
||||
|
||||
public JtbFasi setPathIcona(String pathIcona) {
|
||||
this.pathIcona = pathIcona;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUmAllocazione() {
|
||||
return umAllocazione;
|
||||
}
|
||||
|
||||
public JtbFasi setUmAllocazione(String umAllocazione) {
|
||||
this.umAllocazione = umAllocazione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getMaxAllocazione() {
|
||||
return maxAllocazione;
|
||||
}
|
||||
|
||||
public JtbFasi setMaxAllocazione(BigDecimal maxAllocazione) {
|
||||
this.maxAllocazione = maxAllocazione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJCal() {
|
||||
return codJCal;
|
||||
}
|
||||
|
||||
public JtbFasi setCodJCal(String codJCal) {
|
||||
this.codJCal = codJCal;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIdJfas() {
|
||||
return idJfas;
|
||||
}
|
||||
|
||||
public JtbFasi setIdJfas(String idJfas) {
|
||||
this.idJfas = idJfas;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagAttivo() {
|
||||
return flagAttivo;
|
||||
}
|
||||
|
||||
public JtbFasi setFlagAttivo(String flagAttivo) {
|
||||
this.flagAttivo = flagAttivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlagCheck() {
|
||||
return flagCheck;
|
||||
}
|
||||
|
||||
public JtbFasi setFlagCheck(String flagCheck) {
|
||||
this.flagCheck = flagCheck;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUmProd() {
|
||||
return umProd;
|
||||
}
|
||||
|
||||
public JtbFasi setUmProd(String umProd) {
|
||||
this.umProd = umProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getProdStd() {
|
||||
return prodStd;
|
||||
}
|
||||
|
||||
public JtbFasi setProdStd(BigDecimal prodStd) {
|
||||
this.prodStd = prodStd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMdepLav() {
|
||||
return codMdepLav;
|
||||
}
|
||||
|
||||
public JtbFasi setCodMdepLav(String codMdepLav) {
|
||||
this.codMdepLav = codMdepLav;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTipoProd() {
|
||||
return tipoProd;
|
||||
}
|
||||
|
||||
public JtbFasi setTipoProd(String tipoProd) {
|
||||
this.tipoProd = tipoProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%s - %s", getCodJfas(), getDescrizione());
|
||||
}
|
||||
}
|
||||
@ -135,16 +135,10 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
||||
baseSql += "(" + UtilityQuery.concatFieldListInWhereCond(whereCondMapList) + ")";
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||
this.mSystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||
@Override
|
||||
public void onSuccess(List<MtbColt> value) {
|
||||
this.mSystemRESTConsumer.<List<MtbColt>>processSql(baseSql, typeOfObjectsList, value -> {
|
||||
if(onComplete != null) onComplete.run(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
}, ex -> {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
onFailed.run(ex);
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -81,12 +81,8 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
}
|
||||
|
||||
public <T> void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
|
||||
|
||||
processSqlStatic(nativeSql, clazz, data -> {
|
||||
callback.onSuccess((T) data);
|
||||
}, callback::onFailed);
|
||||
|
||||
public <T> void processSql(String nativeSql, final Type clazz, final RunnableArgs<T> onComplete, final RunnableArgs<Exception> onFailed) {
|
||||
processSqlStatic(nativeSql, clazz, onComplete, onFailed);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
public class UtilityBigDecimal {
|
||||
|
||||
@ -50,23 +51,28 @@ public class UtilityBigDecimal {
|
||||
|
||||
|
||||
public static BigDecimal divide(BigDecimal input1, BigDecimal divisor) {
|
||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||
return divide(input1, divisor, RoundingMode.HALF_EVEN);
|
||||
}
|
||||
|
||||
return input1.divide(divisor, 3, BigDecimal.ROUND_HALF_EVEN);
|
||||
public static BigDecimal divide(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) {
|
||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||
return input1.divide(divisor, 3, roundingMode);
|
||||
}
|
||||
|
||||
|
||||
public static BigDecimal divideToInteger(BigDecimal input1, BigDecimal divisor) {
|
||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||
|
||||
return new BigDecimal(input1.divide(divisor,3, BigDecimal.ROUND_HALF_EVEN).intValue());
|
||||
}
|
||||
|
||||
|
||||
public static BigDecimal divideAndRoundToInteger(BigDecimal input1, BigDecimal divisor) {
|
||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||
return divideAndRoundToInteger(input1, divisor, RoundingMode.HALF_EVEN);
|
||||
}
|
||||
|
||||
return new BigDecimal(input1.divide(divisor,0, BigDecimal.ROUND_HALF_EVEN).intValue());
|
||||
public static BigDecimal divideAndRoundToInteger(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) {
|
||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||
return new BigDecimal(input1.divide(divisor,0, roundingMode).intValue());
|
||||
}
|
||||
|
||||
public static BigDecimal multiply(BigDecimal input1, BigDecimal multiplier) {
|
||||
|
||||
@ -59,7 +59,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
|
||||
|
||||
@ -554,7 +554,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
||||
.setCanLUBeClosed(true)
|
||||
.setCanOverflowOrderQuantity(canOverflowQuantity);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
|
||||
@ -12,7 +12,6 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||
@ -134,17 +133,9 @@ public class AccettazionePickingRESTConsumer {
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<RecoverMtbColt>>() {
|
||||
}.getType();
|
||||
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<RecoverMtbColt>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<RecoverMtbColt> value) {
|
||||
mSystemRestConsumer.<ArrayList<RecoverMtbColt>>processSql(sql, typeOfObjectsList, value -> {
|
||||
if (onComplete != null) onComplete.run(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
if (onFailed != null) onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}, onFailed);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -33,6 +33,7 @@ import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
@ -298,7 +299,7 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
|
||||
+ "<br />" +
|
||||
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
||||
null,
|
||||
() -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol)
|
||||
() -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol, MtbColr.Causale.DEFAULT)
|
||||
).show();
|
||||
}
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
|
||||
/**
|
||||
@ -373,7 +373,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||
.setCanLUBeClosed(canLUBeClosed);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
|
||||
@ -50,7 +50,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
|
||||
|
||||
@ -309,7 +309,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
|
||||
.setCanLUBeClosed(false)
|
||||
.setCanPartitaMagBeChanged(false);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
|
||||
@ -15,7 +15,6 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.DtbDocr;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||
@ -55,9 +54,7 @@ public class PickingResiRESTConsumer {
|
||||
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<WithdrawableDtbDocr>>() {}.getType();
|
||||
this.mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<WithdrawableDtbDocr>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<WithdrawableDtbDocr> values) {
|
||||
this.mSystemRestConsumer.<ArrayList<WithdrawableDtbDocr>>processSql(sql, typeOfObjectsList, values -> {
|
||||
|
||||
if(values != null && values.size() > 0){
|
||||
List<String> codMarts = Stream.of(values)
|
||||
@ -92,13 +89,7 @@ public class PickingResiRESTConsumer {
|
||||
} else {
|
||||
if(onComplete != null) onComplete.run(values);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
|
||||
|
||||
import dagger.Subcomponent;
|
||||
|
||||
@Subcomponent
|
||||
public interface ProdFabbisognoLineeProdComponent {
|
||||
|
||||
@Subcomponent.Factory
|
||||
interface Factory {
|
||||
ProdFabbisognoLineeProdComponent create();
|
||||
}
|
||||
|
||||
void inject(ProdFabbisognoLineeProdFragment prodFabbisognoLineeProdFragment);
|
||||
}
|
||||
@ -0,0 +1,154 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
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.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;
|
||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Use the {@link ProdFabbisognoLineeProdFragment#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITitledFragment, ILifecycleFragment, ProdFabbisognoLineeProdViewModel.Listener {
|
||||
|
||||
@Inject
|
||||
ProdFabbisognoLineeProdViewModel mViewModel;
|
||||
|
||||
private ArrayList<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||
|
||||
private FragmentProdFabbisognoLineeProdBinding mBindings;
|
||||
|
||||
public ProdFabbisognoLineeProdFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
public static ProdFabbisognoLineeProdFragment newInstance() {
|
||||
ProdFabbisognoLineeProdFragment fragment = new ProdFabbisognoLineeProdFragment();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_fabbisogno_linee_prod, container, false);
|
||||
|
||||
mBindings.setLifecycleOwner(this);
|
||||
|
||||
MainApplication.appComponent
|
||||
.prodFabbisognoLineeProdComponent()
|
||||
.create()
|
||||
.inject(this);
|
||||
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
|
||||
DialogAskMagazzinoProssimitaView
|
||||
.newInstance((jtbFase, startDate, endDate) -> {
|
||||
if (jtbFase == null) {
|
||||
((IPoppableActivity) getActivity()).pop();
|
||||
} else {
|
||||
//Load fabbisogno
|
||||
this.mViewModel.loadFabbisogno(startDate, endDate, jtbFase.getCodJfas(), codMdep, fabbisognoList -> {
|
||||
startPickingActivity(fabbisognoList);
|
||||
});
|
||||
}
|
||||
})
|
||||
.show(getActivity().getSupportFragmentManager(), "tag");
|
||||
|
||||
return mBindings.getRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPreDestroy(Runnable onPreDestroy) {
|
||||
this.mOnPreDestroyList.add(onPreDestroy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||
onPreDestroy.run();
|
||||
}
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||
titleText.setText(context.getText(R.string.prod_fabbisogno_linee_prod_title).toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||
}
|
||||
|
||||
|
||||
@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) {
|
||||
List<SitArtOrdDTO> sitArtOrdDTOS = Stream.of(fabbisognoList)
|
||||
.map(x -> new SitArtOrdDTO()
|
||||
.setCodMart(x.getCodMart())
|
||||
.setQtaOrd(x.getQtaFabbisogno())
|
||||
.setNumCnfOrd(x.getNumCnfFabbisogno())
|
||||
.setFlagEnablePickManuale(false))
|
||||
.toList();
|
||||
|
||||
SpedizioneActivity.startActivity(getActivity(),
|
||||
sitArtOrdDTOS,
|
||||
null,
|
||||
new ArrayList<>(),
|
||||
GestioneEnum.LAVORAZIONE,
|
||||
+1,
|
||||
MtbColr.Causale.VERSAMENTO);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
|
||||
@Module(subcomponents = ProdFabbisognoLineeProdComponent.class)
|
||||
public class ProdFabbisognoLineeProdModule {
|
||||
|
||||
@Provides
|
||||
ProdFabbisognoLineeProdViewModel providesProdFabbisognoLineeProdViewModel(SystemRESTConsumer systemRESTConsumer) {
|
||||
return new ProdFabbisognoLineeProdViewModel(systemRESTConsumer);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
||||
|
||||
public class ProdFabbisognoLineeProdViewModel {
|
||||
|
||||
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||
|
||||
private Listener mListener;
|
||||
|
||||
public ProdFabbisognoLineeProdViewModel(SystemRESTConsumer systemRESTConsumer) {
|
||||
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void loadFabbisogno(Date startDate, Date endDate, String lineaProd, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete) {
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
String sql = "WITH input_values AS ( " +
|
||||
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
|
||||
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
|
||||
" " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
|
||||
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep " +
|
||||
"), " +
|
||||
" custom_mtb_colr AS ( " +
|
||||
" SELECT cod_mart, " +
|
||||
" sum(qta_col) AS qta_col, " +
|
||||
" sum(num_cnf) AS num_cnf, " +
|
||||
" sum(qta_col) / sum(num_cnf) AS qta_cnf, " +
|
||||
" posizione " +
|
||||
" FROM mvw_sitart_udc_det_inventario " +
|
||||
" GROUP BY cod_mart, posizione " +
|
||||
" ), " +
|
||||
" tmp_ord AS ( " +
|
||||
" SELECT dtb_ordr.cod_mart, " +
|
||||
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
|
||||
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
|
||||
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
|
||||
" mtb_aart.unt_mis, " +
|
||||
" SUM(ISNULL(custom_mtb_colr.qta_col, 0)) AS qta_col_versata, " +
|
||||
" SUM(ISNULL(custom_mtb_colr.qta_cnf, 0)) AS qta_cnf_versata, " +
|
||||
" SUM(ISNULL(custom_mtb_colr.num_cnf, 0)) AS num_cnf_versata" +
|
||||
" FROM dtb_ordr " +
|
||||
" INNER JOIN dtb_ordt " +
|
||||
" on dtb_ordr.gestione = dtb_ordt.gestione AND dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
|
||||
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
|
||||
" INNER JOIN jrl_fase_posizioni ON dtb_ordt.cod_jfas = jrl_fase_posizioni.cod_jfas " +
|
||||
" LEFT OUTER JOIN custom_mtb_colr ON custom_mtb_colr.posizione = jrl_fase_posizioni.posizione AND " +
|
||||
" dtb_ordr.cod_mart = custom_mtb_colr.cod_mart " +
|
||||
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart " +
|
||||
" CROSS APPLY input_values " +
|
||||
" WHERE dtb_ordt.gestione = 'L' " +
|
||||
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
|
||||
" AND jrl_fase_posizioni.posizione = input_values.linea_prod " +
|
||||
" AND flag_evaso = 'I' " +
|
||||
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
|
||||
" AND flag_annulla = 'N' " +
|
||||
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
|
||||
" GROUP BY dtb_ordr.cod_mart, " +
|
||||
" mtb_aart.unt_mis " +
|
||||
" ) " +
|
||||
"SELECT cod_mart, " +
|
||||
" qta_ord, " +
|
||||
" num_cnf_ord, " +
|
||||
" unt_mis, " +
|
||||
" qta_col_versata, " +
|
||||
" num_cnf_versata, " +
|
||||
" CASE WHEN qta_ord - qta_col_versata < 0 THEN 0 ELSE qta_ord - qta_col_versata END AS qta_fabbisogno, " +
|
||||
" CASE WHEN num_cnf_ord - num_cnf_versata < 0 THEN 0 ELSE num_cnf_ord - num_cnf_versata END AS num_cnf_fabbisogno " +
|
||||
"FROM tmp_ord " +
|
||||
"ORDER BY cod_mart";
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<ProdFabbisognoLineeProdDTO>>() {}.getType();
|
||||
this.mSystemRESTConsumer.<List<ProdFabbisognoLineeProdDTO>>processSql(sql, typeOfObjectsList, jtbFasi -> {
|
||||
onComplete.run(jtbFasi);
|
||||
|
||||
this.sendOnLoadingEnded();
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
|
||||
private void sendOnLoadingStarted() {
|
||||
if (this.mListener != null) mListener.onLoadingStarted();
|
||||
}
|
||||
|
||||
private void sendOnLoadingEnded() {
|
||||
if (this.mListener != null) mListener.onLoadingEnded();
|
||||
}
|
||||
|
||||
private void sendError(Exception ex) {
|
||||
if (this.mListener != null) mListener.onError(ex);
|
||||
}
|
||||
|
||||
public void setListener(Listener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
public interface Listener extends ILoadingListener {
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,114 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.JtbFasi;
|
||||
|
||||
public class DialogAskMagazzinoProssimitaAdapter extends ArrayAdapter<JtbFasi> implements Filterable {
|
||||
|
||||
private final Context mContext;
|
||||
private final List<JtbFasi> mDataset;
|
||||
private List<JtbFasi> mDatasetAllItems;
|
||||
|
||||
private final ListFilter listFilter = new ListFilter();
|
||||
|
||||
public DialogAskMagazzinoProssimitaAdapter(@NonNull Context context, @NonNull List<JtbFasi> list) {
|
||||
super(context, 0, list);
|
||||
mContext = context;
|
||||
mDataset = list;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItem = convertView;
|
||||
if (listItem == null) {
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dropdown_simple_item, parent, false);
|
||||
}
|
||||
|
||||
if (position < mDataset.size()) {
|
||||
AppCompatTextView textView = listItem.findViewById(R.id.text);
|
||||
textView.setText(mDataset.get(position).toString());
|
||||
return listItem;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Filter getFilter() {
|
||||
return listFilter;
|
||||
}
|
||||
|
||||
public class ListFilter extends Filter {
|
||||
private Object lock = new Object();
|
||||
|
||||
@Override
|
||||
protected FilterResults performFiltering(CharSequence prefix) {
|
||||
FilterResults results = new FilterResults();
|
||||
if (mDatasetAllItems == null) {
|
||||
synchronized (lock) {
|
||||
mDatasetAllItems = new ArrayList<>(mDataset);
|
||||
}
|
||||
}
|
||||
|
||||
if (prefix == null || prefix.length() == 0) {
|
||||
synchronized (lock) {
|
||||
results.values = mDatasetAllItems;
|
||||
results.count = mDatasetAllItems.size();
|
||||
}
|
||||
} else {
|
||||
final String searchStrLowerCase = prefix.toString().toLowerCase();
|
||||
|
||||
ArrayList<JtbFasi> matchValues = new ArrayList<>();
|
||||
|
||||
for (JtbFasi dataItem : mDatasetAllItems) {
|
||||
if (dataItem.getCodJfas().toLowerCase().startsWith(searchStrLowerCase) ||
|
||||
dataItem.getDescrizione().toLowerCase().startsWith(searchStrLowerCase)) {
|
||||
matchValues.add(dataItem);
|
||||
}
|
||||
}
|
||||
|
||||
results.values = matchValues;
|
||||
results.count = matchValues.size();
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||
if (results.values != null) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll((ArrayList<JtbFasi>) results.values);
|
||||
} else {
|
||||
mDataset.clear();
|
||||
}
|
||||
if (results.count > 0) {
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
notifyDataSetInvalidated();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita;
|
||||
|
||||
import dagger.Subcomponent;
|
||||
|
||||
@Subcomponent
|
||||
public interface DialogAskMagazzinoProssimitaComponent {
|
||||
|
||||
@Subcomponent.Factory
|
||||
interface Factory {
|
||||
DialogAskMagazzinoProssimitaComponent create();
|
||||
}
|
||||
|
||||
void inject(DialogAskMagazzinoProssimitaView dialogAskMagazzinoProssimitaView);
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
|
||||
@Module
|
||||
public class DialogAskMagazzinoProssimitaModule {
|
||||
|
||||
@Provides
|
||||
DialogAskMagazzinoProssimitaViewModel providesDialogAskMagazzinoProssimitaViewModel(SystemRESTConsumer systemRESTConsumer) {
|
||||
return new DialogAskMagazzinoProssimitaViewModel(systemRESTConsumer);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,202 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita;
|
||||
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.tfb.fbtoast.FBToast;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
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 {
|
||||
|
||||
@Inject
|
||||
DialogAskMagazzinoProssimitaViewModel mViewModel;
|
||||
|
||||
private final RunnableArgsss<JtbFasi, Date, Date> mOnItemSelected;
|
||||
|
||||
private Context mContext;
|
||||
private DialogAskMagazzinoProssimitaBinding mBindings;
|
||||
|
||||
private JtbFasi mSelectedItem;
|
||||
|
||||
public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss<JtbFasi, Date, Date> onItemSelected) {
|
||||
return new DialogAskMagazzinoProssimitaView(onItemSelected);
|
||||
}
|
||||
|
||||
|
||||
private DialogAskMagazzinoProssimitaView(RunnableArgsss<JtbFasi, Date, Date> onItemSelected) {
|
||||
super();
|
||||
|
||||
this.mOnItemSelected = onItemSelected;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
this.mContext = getActivity();
|
||||
|
||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_magazzino_prossimita, container, false);
|
||||
|
||||
MainApplication.appComponent
|
||||
.dialogAskMagazzinoProssimitaComponent()
|
||||
.create()
|
||||
.inject(this);
|
||||
|
||||
mBindings.setView(this);
|
||||
mBindings.setViewmodel(this.mViewModel);
|
||||
|
||||
getDialog().setCanceledOnTouchOutside(false);
|
||||
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
|
||||
mBindings.buttonConfirm.setOnClickListener(new OnSingleClickListener() {
|
||||
@Override
|
||||
public void onSingleClick(View v) {
|
||||
if(mSelectedItem != null) {
|
||||
getDialog().dismiss();
|
||||
} else {
|
||||
FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mBindings.buttonAbort.setOnClickListener(new OnSingleClickListener() {
|
||||
@Override
|
||||
public void onSingleClick(View v) {
|
||||
getDialog().dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
mBindings.filledExposedDropdownStartDate.setOnClickListener(onStartDateClickListener);
|
||||
mBindings.filledExposedDropdownEndDate.setOnClickListener(onEndDateClickListener);
|
||||
|
||||
return mBindings.getRoot();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
|
||||
this.mViewModel.setListener(this);
|
||||
this.mViewModel.init(codMdep);
|
||||
|
||||
this.mViewModel.getJtbFasi().observe(getViewLifecycleOwner(), this::onPosizioniLoaded);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||
super.onDismiss(dialog);
|
||||
mOnItemSelected.run(mSelectedItem, mViewModel.startDate, mViewModel.endDate);
|
||||
}
|
||||
|
||||
private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() {
|
||||
@Override
|
||||
public void onSingleClick(View v) {
|
||||
Calendar c = UtilityDate.getCalendarInstance();
|
||||
|
||||
|
||||
if(mViewModel.startDateBindable != null) {
|
||||
c.setTime(mViewModel.startDate);
|
||||
}
|
||||
|
||||
int mYear = c.get(Calendar.YEAR);
|
||||
int mMonth = c.get(Calendar.MONTH);
|
||||
int mDay = c.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
|
||||
(view2, year, month, day) -> {
|
||||
|
||||
mViewModel.startDate = new GregorianCalendar(year, month, day).getTime();
|
||||
mViewModel.startDateBindable.set(UtilityDate.formatDate(mViewModel.startDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
}, mYear, mMonth, mDay);
|
||||
datePickerDialog.show();
|
||||
}
|
||||
};
|
||||
|
||||
private final View.OnClickListener onEndDateClickListener = new OnSingleClickListener() {
|
||||
@Override
|
||||
public void onSingleClick(View v) {
|
||||
Calendar c = UtilityDate.getCalendarInstance();
|
||||
|
||||
if(mViewModel.endDateBindable != null) {
|
||||
c.setTime(mViewModel.endDate);
|
||||
}
|
||||
|
||||
int mYear = c.get(Calendar.YEAR);
|
||||
int mMonth = c.get(Calendar.MONTH);
|
||||
int mDay = c.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
|
||||
(view2, year, month, day) -> {
|
||||
|
||||
mViewModel.endDate = new GregorianCalendar(year, month, day).getTime();
|
||||
mViewModel.endDateBindable.set(UtilityDate.formatDate(mViewModel.endDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
}, mYear, mMonth, mDay);
|
||||
datePickerDialog.show();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
private void onPosizioniLoaded(List<JtbFasi> items) {
|
||||
DialogAskMagazzinoProssimitaAdapter adapter = new DialogAskMagazzinoProssimitaAdapter(mContext, items);
|
||||
|
||||
AutoCompleteTextView editTextDropdownCliente = mBindings.dropdownLineaProd;
|
||||
editTextDropdownCliente.setThreshold(0);
|
||||
editTextDropdownCliente.setAdapter(adapter);
|
||||
editTextDropdownCliente.setOnItemClickListener((parent, view, position, id) -> {
|
||||
mSelectedItem = items.get(position);
|
||||
});
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,99 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||
import it.integry.integrywmsnative.core.model.JtbFasi;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
public class DialogAskMagazzinoProssimitaViewModel {
|
||||
|
||||
public BindableString startDateBindable = new BindableString();
|
||||
public BindableString endDateBindable = new BindableString();
|
||||
|
||||
public Date startDate = new Date();
|
||||
public Date endDate = new Date();
|
||||
|
||||
private Listener mListener;
|
||||
|
||||
private final MutableLiveData<List<JtbFasi>> mJtbFasi = new MutableLiveData<>();
|
||||
|
||||
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||
|
||||
public DialogAskMagazzinoProssimitaViewModel(SystemRESTConsumer systemRESTConsumer) {
|
||||
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||
}
|
||||
|
||||
public void init(String codMdep) {
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
Calendar c = UtilityDate.getCalendarInstance();
|
||||
c.set(Calendar.DAY_OF_WEEK, c.getActualMinimum(Calendar.DAY_OF_WEEK));
|
||||
c.add(Calendar.DAY_OF_MONTH, -7);
|
||||
startDate = c.getTime();
|
||||
startDateBindable.set(UtilityDate.formatDate(startDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
c.add(Calendar.DAY_OF_MONTH, 7);
|
||||
endDate = c.getTime();
|
||||
endDateBindable.set(UtilityDate.formatDate(endDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
String sql = "SELECT DISTINCT jrl_fase_posizioni.posizione as cod_jfas, " +
|
||||
" descrizione, " +
|
||||
" jrl_fase_posizioni.cod_mdep " +
|
||||
"FROM jrl_fase_posizioni " +
|
||||
" INNER JOIN mtb_depo_posizioni mdp ON jrl_fase_posizioni.cod_mdep = mdp.cod_mdep AND " +
|
||||
" jrl_fase_posizioni.posizione = mdp.posizione " +
|
||||
"WHERE cod_jfas IN (SELECT cod_jfas FROM jtb_fasi WHERE um_prod IS NOT NULL) " +
|
||||
" AND jrl_fase_posizioni.cod_mdep = " + UtilityDB.valueToString(codMdep) + " " +
|
||||
"ORDER BY jrl_fase_posizioni.posizione";
|
||||
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {}.getType();
|
||||
this.mSystemRESTConsumer.<List<JtbFasi>>processSql(sql, typeOfObjectsList, jtbFasi -> {
|
||||
this.mJtbFasi.postValue(jtbFasi);
|
||||
|
||||
this.sendOnLoadingEnded();
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public MutableLiveData<List<JtbFasi>> getJtbFasi() {
|
||||
return mJtbFasi;
|
||||
}
|
||||
|
||||
|
||||
private void sendOnLoadingStarted() {
|
||||
if (this.mListener != null) mListener.onLoadingStarted();
|
||||
}
|
||||
|
||||
private void sendOnLoadingEnded() {
|
||||
if (this.mListener != null) mListener.onLoadingEnded();
|
||||
}
|
||||
|
||||
private void sendError(Exception ex) {
|
||||
if (this.mListener != null) mListener.onError(ex);
|
||||
}
|
||||
|
||||
public void setListener(Listener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
public interface Listener extends ILoadingListener {
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,87 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class ProdFabbisognoLineeProdDTO {
|
||||
|
||||
private String codMart;
|
||||
private BigDecimal qtaOrd;
|
||||
private BigDecimal numCnfOrd;
|
||||
private String untMis;
|
||||
private BigDecimal qtaColVersata;
|
||||
private BigDecimal numCnfVersata;
|
||||
private BigDecimal qtaFabbisogno;
|
||||
private BigDecimal numCnfFabbisogno;
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaOrd() {
|
||||
return qtaOrd;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setQtaOrd(BigDecimal qtaOrd) {
|
||||
this.qtaOrd = qtaOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getNumCnfOrd() {
|
||||
return numCnfOrd;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setNumCnfOrd(BigDecimal numCnfOrd) {
|
||||
this.numCnfOrd = numCnfOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaColVersata() {
|
||||
return qtaColVersata;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setQtaColVersata(BigDecimal qtaColVersata) {
|
||||
this.qtaColVersata = qtaColVersata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getNumCnfVersata() {
|
||||
return numCnfVersata;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setNumCnfVersata(BigDecimal numCnfVersata) {
|
||||
this.numCnfVersata = numCnfVersata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaFabbisogno() {
|
||||
return qtaFabbisogno;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setQtaFabbisogno(BigDecimal qtaFabbisogno) {
|
||||
this.qtaFabbisogno = qtaFabbisogno;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getNumCnfFabbisogno() {
|
||||
return numCnfFabbisogno;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeProdDTO setNumCnfFabbisogno(BigDecimal numCnfFabbisogno) {
|
||||
this.numCnfFabbisogno = numCnfFabbisogno;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||
|
||||
import dagger.Subcomponent;
|
||||
|
||||
@Subcomponent
|
||||
public interface ProdPosizionamentoDaOrdComponent {
|
||||
|
||||
@Subcomponent.Factory
|
||||
interface Factory {
|
||||
|
||||
ProdPosizionamentoDaOrdComponent create();
|
||||
}
|
||||
|
||||
void inject(ProdPosizionamentoDaOrdFragment prodPosizionamentoDaOrdFragment);
|
||||
}
|
||||
@ -1,63 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.databinding.FragmentProdPosizionamentoDaOrdBinding;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Use the {@link ProdPosizionamentoDaOrdFragment#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
public class ProdPosizionamentoDaOrdFragment extends Fragment {
|
||||
|
||||
private FragmentProdPosizionamentoDaOrdBinding mBinding = null;
|
||||
|
||||
@Inject
|
||||
ProdPosizionamentoDaOrdViewModel mViewModel;
|
||||
|
||||
public ProdPosizionamentoDaOrdFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
|
||||
public static ProdPosizionamentoDaOrdFragment newInstance() {
|
||||
ProdPosizionamentoDaOrdFragment fragment = new ProdPosizionamentoDaOrdFragment();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_posizionamento_da_ord, container,false);
|
||||
|
||||
MainApplication.appComponent
|
||||
.prodPosizionamentoDaOrdComponent()
|
||||
.create()
|
||||
.inject(this);
|
||||
|
||||
// mViewModel.setListener(this);
|
||||
|
||||
mBinding.setLifecycleOwner(this);
|
||||
mBinding.setView(this);
|
||||
mBinding.setViewmodel(mViewModel);
|
||||
|
||||
return mBinding.getRoot();
|
||||
}
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
@Module(subcomponents = ProdPosizionamentoDaOrdComponent.class)
|
||||
public class ProdPosizionamentoDaOrdModule {
|
||||
|
||||
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ProdPosizionamentoDaOrdViewModel providesProdPosizionamentoDaOrdViewModel() {
|
||||
return new ProdPosizionamentoDaOrdViewModel();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class ProdPosizionamentoDaOrdViewModel {
|
||||
|
||||
|
||||
@Inject
|
||||
public ProdPosizionamentoDaOrdViewModel() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -43,8 +43,8 @@ import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersa
|
||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||
|
||||
public class ProdRecuperoMaterialeViewModel {
|
||||
@ -82,6 +82,7 @@ public class ProdRecuperoMaterialeViewModel {
|
||||
|
||||
|
||||
private void initBarcode() {
|
||||
BarcodeManager.enable();
|
||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(onScanSuccessful)
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false)));
|
||||
@ -204,7 +205,7 @@ public class ProdRecuperoMaterialeViewModel {
|
||||
.setCanOverflowOrderQuantity(false)
|
||||
.setCanLUBeClosed(false);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
@ -213,14 +214,15 @@ public class ProdRecuperoMaterialeViewModel {
|
||||
.setPartitaMag(resultDTO.getPartitaMag())
|
||||
.setDataScad(resultDTO.getDataScad());
|
||||
|
||||
onItemDispatched(item, resultDTO.getQtaTot(), sourceMtbColt, dialogProgress);
|
||||
onItemDispatched(item, resultDTO.getQtaTot(), resultDTO.getNumCnf(), resultDTO.getQtaCnf(), sourceMtbColt, dialogProgress);
|
||||
}, () -> {
|
||||
if (dialogProgress != null) dialogProgress.dismiss();
|
||||
BarcodeManager.enable();
|
||||
})
|
||||
.show(mContext.getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) {
|
||||
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal inputQtaTot, BigDecimal inputNumCnf, BigDecimal inputQtaCnf, MtbColt sourceMtbColt, Dialog progress) {
|
||||
|
||||
if (progress == null) {
|
||||
progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
@ -234,14 +236,37 @@ public class ProdRecuperoMaterialeViewModel {
|
||||
.setGestione(item.getGestione())
|
||||
.setMtbColr(new ObservableArrayList<>());
|
||||
|
||||
|
||||
BigDecimal totalSumOfQtaCol = BigDecimal.ZERO;
|
||||
BigDecimal totalSumOfNumCnf = BigDecimal.ZERO;
|
||||
|
||||
for (HistoryVersamentoProdULDTO.OrdineDto ordine : item.getOrdini()) {
|
||||
BigDecimal qtaCol = quantity.multiply(new BigDecimal(-1).multiply(new BigDecimal(ordine.getPercentageHr()))).divide(new BigDecimal(100), 3, RoundingMode.HALF_EVEN);
|
||||
|
||||
BigDecimal qtaColToSave;
|
||||
BigDecimal numCnfToSave;
|
||||
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (item.getMtbAart() != null && !item.getMtbAart().isFlagQtaCnfFissaBoolean()) ){
|
||||
numCnfToSave = UtilityBigDecimal.divideAndRoundToInteger(inputNumCnf.multiply(BigDecimal.valueOf(ordine.getPercentageHr())), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||
qtaColToSave = numCnfToSave.multiply(inputQtaCnf).setScale(0, BigDecimal.ROUND_FLOOR);
|
||||
} else {
|
||||
qtaColToSave = UtilityBigDecimal.divideAndRoundToInteger(inputQtaTot.multiply(BigDecimal.valueOf(ordine.getPercentageHr())), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||
numCnfToSave = UtilityBigDecimal.divide(qtaColToSave, item.getQtaCnf(), RoundingMode.FLOOR);
|
||||
}
|
||||
|
||||
|
||||
totalSumOfQtaCol = totalSumOfQtaCol.add(qtaColToSave);
|
||||
totalSumOfNumCnf = totalSumOfNumCnf.add(numCnfToSave);
|
||||
|
||||
numCnfToSave = numCnfToSave.multiply(BigDecimal.valueOf(-1));
|
||||
qtaColToSave = qtaColToSave.multiply(BigDecimal.valueOf(-1));
|
||||
|
||||
|
||||
final MtbColr mtbColrScarico = new MtbColr()
|
||||
.setCodMart(item.getCodMart())
|
||||
.setPartitaMag(UtilityString.empty2null(item.getPartitaMag()))
|
||||
.setQtaCol(qtaCol)
|
||||
.setQtaCnf(ordine.getQtaCnf())
|
||||
.setQtaCol(qtaColToSave)
|
||||
.setQtaCnf(inputQtaCnf)
|
||||
.setNumCnf(numCnfToSave)
|
||||
.setDescrizione(UtilityString.isNullOrEmpty(item.getMtbAart().getDescrizioneEstesa()) ? item.getMtbAart().getDescrizione() : item.getMtbAart().getDescrizioneEstesa())
|
||||
.setDatetimeRow(UtilityDate.getDateInstance())
|
||||
.setNumColloRif(item.getNumColloRif())
|
||||
@ -256,6 +281,24 @@ public class ProdRecuperoMaterialeViewModel {
|
||||
mtbColtScarico.getMtbColr().add(mtbColrScarico);
|
||||
}
|
||||
|
||||
boolean updateQtaCnfFirstRow = false;
|
||||
|
||||
if(UtilityBigDecimal.lowerThan(totalSumOfNumCnf, inputNumCnf)) {
|
||||
BigDecimal diff = inputNumCnf.subtract(totalSumOfNumCnf).multiply(BigDecimal.valueOf(-1));
|
||||
mtbColtScarico.getMtbColr().get(0).setNumCnf(mtbColtScarico.getMtbColr().get(0).getNumCnf().add(diff));
|
||||
updateQtaCnfFirstRow = true;
|
||||
}
|
||||
|
||||
if(UtilityBigDecimal.lowerThan(totalSumOfQtaCol, inputQtaTot)) {
|
||||
BigDecimal diff = inputQtaTot.subtract(totalSumOfQtaCol).multiply(BigDecimal.valueOf(-1));
|
||||
mtbColtScarico.getMtbColr().get(0).setQtaCol(mtbColtScarico.getMtbColr().get(0).getQtaCol().add(diff));
|
||||
updateQtaCnfFirstRow = true;
|
||||
}
|
||||
|
||||
if(updateQtaCnfFirstRow) {
|
||||
mtbColtScarico.getMtbColr().get(0).setQtaCnf(
|
||||
UtilityBigDecimal.divide(mtbColtScarico.getMtbColr().get(0).getQtaCol(), mtbColtScarico.getMtbColr().get(0).getNumCnf()));
|
||||
}
|
||||
|
||||
mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||
|
||||
@ -280,7 +323,9 @@ public class ProdRecuperoMaterialeViewModel {
|
||||
final MtbColr mtbColrCarico = new MtbColr()
|
||||
.setCodMart(item.getCodMart())
|
||||
.setPartitaMag(UtilityString.empty2null(item.getPartitaMag()))
|
||||
.setQtaCol(quantity)
|
||||
.setQtaCol(inputQtaTot)
|
||||
.setNumCnf(inputNumCnf)
|
||||
.setQtaCnf(inputQtaCnf)
|
||||
.setDescrizione(UtilityString.isNullOrEmpty(item.getMtbAart().getDescrizioneEstesa()) ? item.getMtbAart().getDescrizione() : item.getMtbAart().getDescrizioneEstesa())
|
||||
.setDatetimeRow(UtilityDate.getDateInstance())
|
||||
.setNumColloRif(item.getNumColloRif())
|
||||
|
||||
@ -13,18 +13,19 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.ParseException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
|
||||
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
|
||||
import it.integry.integrywmsnative.core.model.CheckableOrdineLavoro;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||
@ -76,38 +77,52 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
|
||||
MtbColr mtbColr = mMtbColr;
|
||||
BigDecimal residuoCol = mtbColr.getQtaCol();
|
||||
BigDecimal residuoCnf = mtbColr.getNumCnf();
|
||||
BigDecimal offsetCol = BigDecimal.ZERO.add(residuoCol);
|
||||
BigDecimal offsetCnf = BigDecimal.ZERO.add(residuoCnf);
|
||||
mtbColr.setQtaCnf(mtbColr.getQtaCol().divide(mtbColr.getNumCnf(),5,BigDecimal.ROUND_HALF_UP));
|
||||
|
||||
BigDecimal offsetCol = BigDecimal.ZERO.add(residuoCol); //Forced clone
|
||||
BigDecimal offsetCnf = BigDecimal.ZERO.add(residuoCnf); //Forced clone
|
||||
|
||||
mtbColr.setQtaCnf(UtilityBigDecimal.divide(mtbColr.getQtaCol(), mtbColr.getNumCnf()));
|
||||
|
||||
List<CheckableOrdineLavoro> ordiniSelezionati = getSelectedData();
|
||||
int totalHr = Stream.of(ordiniSelezionati).mapToInt(x -> x.getItem().getOrdineLav().getHrNum()).sum();
|
||||
int totalHr = Stream.of(ordiniSelezionati)
|
||||
.mapToInt(x -> x.getItem().getOrdineLav().getHrNum())
|
||||
.sum();
|
||||
|
||||
for (CheckableOrdineLavoro c : ordiniSelezionati) {
|
||||
BigDecimal usedCol, usedCnf;
|
||||
float perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr;
|
||||
int perc = (c.getItem().getOrdineLav().getHrNum() * 100) / totalHr;
|
||||
|
||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean()) ){
|
||||
usedCnf = residuoCnf.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR);
|
||||
if (usedCnf.compareTo(BigDecimal.ZERO) <= 0 && offsetCnf.compareTo(BigDecimal.ZERO) > 0){
|
||||
usedCnf = UtilityBigDecimal.divideAndRoundToInteger(residuoCnf.multiply(BigDecimal.valueOf(perc)), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||
|
||||
if(UtilityBigDecimal.equalsOrLowerThan(usedCnf, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCnf, BigDecimal.ZERO)) {
|
||||
usedCnf = BigDecimal.ONE;
|
||||
}
|
||||
|
||||
usedCol = usedCnf.multiply(mtbColr.getQtaCnf()).setScale(0,BigDecimal.ROUND_FLOOR);
|
||||
} else {
|
||||
usedCol = residuoCol.multiply(BigDecimal.valueOf(perc)).divide(BigDecimal.valueOf(100)).setScale(0, BigDecimal.ROUND_FLOOR);
|
||||
if (usedCol.compareTo(BigDecimal.ZERO) <= 0 && offsetCol.compareTo(BigDecimal.ZERO) > 0){
|
||||
usedCol = UtilityBigDecimal.divideAndRoundToInteger(residuoCol.multiply(BigDecimal.valueOf(perc)), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||
|
||||
if (UtilityBigDecimal.equalsOrLowerThan(usedCol, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCol, BigDecimal.ZERO)){
|
||||
usedCol = BigDecimal.ONE;
|
||||
}
|
||||
usedCnf = usedCol.divide(mtbColr.getQtaCnf()).setScale(3, BigDecimal.ROUND_FLOOR);
|
||||
|
||||
usedCnf = UtilityBigDecimal.divide(usedCol, mtbColr.getQtaCnf(), RoundingMode.FLOOR);
|
||||
}
|
||||
|
||||
offsetCol = offsetCol.subtract(usedCol);
|
||||
offsetCnf = offsetCnf.subtract(usedCnf);
|
||||
|
||||
c.setQtaCol(usedCol.floatValue());
|
||||
c.setNumCnf(usedCnf.floatValue());
|
||||
}
|
||||
|
||||
if (ordiniSelezionati.size() > 0) {
|
||||
CheckableOrdineLavoro majorOrder = Stream.of(ordiniSelezionati).max((o1, o2) -> Integer.compare(o1.getItem().getOrdineLav().getHrNum(), o2.getItem().getOrdineLav().getHrNum())).get();
|
||||
if (majorOrder == null) {
|
||||
majorOrder = ordiniSelezionati.get(0);
|
||||
}
|
||||
|
||||
if (offsetCnf.floatValue() != 0 || offsetCol.floatValue() != 0){
|
||||
if ( SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.getMtbAart() != null && !mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||
majorOrder.setNumCnf(majorOrder.getNumCnf().get() + offsetCnf.floatValue());
|
||||
@ -116,8 +131,6 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
|
||||
majorOrder.setQtaCol(majorOrder.getQtaCol().get() + offsetCol.floatValue());
|
||||
majorOrder.setNumCnf(majorOrder.getQtaCol().get() / mtbColr.getQtaCnf().floatValue());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
||||
@ -416,7 +416,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||
.setCanLUBeClosed(canLUBeClosed);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
|
||||
@ -10,11 +10,9 @@ import javax.inject.Singleton;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbAartWithFornitore;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||
|
||||
@Singleton
|
||||
@ -29,19 +27,12 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer {
|
||||
public void loadListaFornitori(RunnableArgs<ArrayList<FornitoreDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
String sql = "SELECT cod_alis as 'codAlis', descrizione FROM atb_list WHERE flag_attivo = 'S'";
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<FornitoreDTO>>() {}.getType();
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<FornitoreDTO>>() {
|
||||
}.getType();
|
||||
|
||||
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<FornitoreDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<FornitoreDTO> value) {
|
||||
mSystemRestConsumer.<ArrayList<FornitoreDTO>>processSql(sql, typeOfObjectsList, value -> {
|
||||
if (onComplete != null) onComplete.run(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
|
||||
@ -55,18 +46,11 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer {
|
||||
" ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa";
|
||||
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAartWithFornitore>>() {}.getType();
|
||||
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAartWithFornitore>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<MtbAartWithFornitore> value) {
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAartWithFornitore>>() {
|
||||
}.getType();
|
||||
mSystemRestConsumer.<ArrayList<MtbAartWithFornitore>>processSql(sql, typeOfObjectsList, value -> {
|
||||
if (onComplete != null) onComplete.run(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
|
||||
@ -84,18 +68,11 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer {
|
||||
"OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " +
|
||||
"OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {}.getType();
|
||||
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAart>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<MtbAart> value) {
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {
|
||||
}.getType();
|
||||
mSystemRestConsumer.<ArrayList<MtbAart>>processSql(sql, typeOfObjectsList, value -> {
|
||||
if (onComplete != null) onComplete.run(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
}
|
||||
});
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -67,9 +67,9 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.camera_barcode_reader.DialogCameraBarcodeReader;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtView;
|
||||
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
||||
|
||||
public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
||||
@ -100,12 +100,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
private ArrayList<MtbColt> mColliRegistrati;
|
||||
private GestioneEnum mGestioneCol;
|
||||
private int mSegnoCol;
|
||||
private Integer mDefaultCausaleUL;
|
||||
|
||||
private boolean mShouldCloseActivity;
|
||||
|
||||
private final int PICK_UL_REQUEST = 1;
|
||||
|
||||
public static void startActivity(Context context, List<SitArtOrdDTO> ordini, List<OrdineUscitaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList, GestioneEnum gestioneCol, int segnoCol) {
|
||||
public static void startActivity(Context context, List<SitArtOrdDTO> ordini, List<OrdineUscitaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList, GestioneEnum gestioneCol, int segnoCol, Integer defaultCausaleUL) {
|
||||
Intent myIntent = new Intent(context, SpedizioneActivity.class);
|
||||
|
||||
String keyPickingList = DataCache.addItem(ordini);
|
||||
@ -123,6 +124,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
String keySegnoCol = DataCache.addItem(segnoCol);
|
||||
myIntent.putExtra("keySegnoCol", keySegnoCol);
|
||||
|
||||
String keyDefaultCausaleUL = DataCache.addItem(defaultCausaleUL);
|
||||
myIntent.putExtra("keyDefaultCausaleCol", keyDefaultCausaleUL);
|
||||
|
||||
context.startActivity(myIntent);
|
||||
}
|
||||
|
||||
@ -135,6 +139,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
mColliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
||||
mGestioneCol = DataCache.retrieveItem(getIntent().getStringExtra("keyGestioneCol"));
|
||||
mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol"));
|
||||
mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol"));
|
||||
|
||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
|
||||
|
||||
@ -186,7 +191,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
mTestateOrdini,
|
||||
mColliRegistrati,
|
||||
reportNameSpedizioneChiudiOrdine,
|
||||
mGestioneCol, mSegnoCol);
|
||||
mGestioneCol, mSegnoCol, mDefaultCausaleUL);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -586,7 +591,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
};
|
||||
|
||||
public void addExtraItem() {
|
||||
DialogScanArt
|
||||
DialogScanArtView
|
||||
.newInstance((status, mtbAart, ean128Model, mtbColr) -> {
|
||||
if(status == DialogConsts.Results.YES) {
|
||||
this.mViewmodel.dispatchExtraItem(mtbAart, ean128Model, mtbColr);
|
||||
@ -779,7 +784,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
||||
.setCanLUBeClosed(true);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
|
||||
@ -63,7 +63,6 @@ import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.CurrentMonoLUPositionIsNotCorrectException;
|
||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NoOrdersSelectedException;
|
||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
|
||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||
@ -87,6 +86,7 @@ public class SpedizioneViewModel {
|
||||
private Integer mDefaultNumOrdOfUL = null;
|
||||
private Date mDefaultDataOrdOfUL = null;
|
||||
private String mDefaultCodJFasOfUL = null;
|
||||
private Integer mDefaultCausaleOfUL = null;
|
||||
|
||||
private boolean mEnableGiacenza;
|
||||
private boolean mEnableCheckPartitaMag;
|
||||
@ -133,7 +133,8 @@ public class SpedizioneViewModel {
|
||||
List<MtbColt> colliRegistrati,
|
||||
String reportNameSpedizioneChiudiOrdine,
|
||||
GestioneEnum gestioneCol,
|
||||
int segnoCol) {
|
||||
int segnoCol,
|
||||
Integer defaultCausaleUL) {
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
this.mDefaultCodMdep = codMdep;
|
||||
@ -144,6 +145,7 @@ public class SpedizioneViewModel {
|
||||
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
|
||||
this.mShouldAskPesoLU = shouldAskPesoLU;
|
||||
this.mReportNameSpedizioneChiudiOrdine = reportNameSpedizioneChiudiOrdine;
|
||||
this.mDefaultCausaleOfUL = defaultCausaleUL;
|
||||
|
||||
if (enableGiacenza) {
|
||||
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
|
||||
@ -192,10 +194,7 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
private void initDefaultVars() {
|
||||
if (this.mTestateOrdini == null || this.mTestateOrdini.size() == 0) {
|
||||
sendError(new NoOrdersSelectedException());
|
||||
return;
|
||||
}
|
||||
if (this.mTestateOrdini != null && this.mTestateOrdini.size() > 0) {
|
||||
|
||||
if (mDefaultGestioneOfUL == null) {
|
||||
//Definizione della gestione collo di default
|
||||
@ -294,6 +293,7 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void sendOnLoadingStarted() {
|
||||
if (this.mListener != null) mListener.onLoadingStarted();
|
||||
@ -1249,6 +1249,7 @@ public class SpedizioneViewModel {
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
final MtbColr mtbColr = new MtbColr()
|
||||
.setCausale(mDefaultCausaleOfUL)
|
||||
.setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
|
||||
.setPartitaMag(partitaMag)
|
||||
.setDataScadPartita(dataScad)
|
||||
|
||||
@ -1,4 +1,12 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione.exceptions;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||
|
||||
public final class NoOrdersSelectedException extends Exception {
|
||||
|
||||
public NoOrdersSelectedException() {
|
||||
super(UtilityResources.getString(R.string.no_one_order_selected));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||
|
||||
@ -379,7 +379,7 @@ public class VersamentoMerceViewModel {
|
||||
.setCanPartitaMagBeChanged(false)
|
||||
.setCanLUBeClosed(false);
|
||||
|
||||
DialogInputQuantityV2
|
||||
DialogInputQuantityV2View
|
||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||
// PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
// .setNumCnf(resultDTO.getNumCnf())
|
||||
|
||||
@ -37,7 +37,7 @@ public class DialogAskCliente_Page1_Cliente_ArrayAdapter extends ArrayAdapter<Di
|
||||
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItem = convertView;
|
||||
if(listItem == null) {
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item, parent, false);
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dropdown_simple_item, parent, false);
|
||||
}
|
||||
|
||||
if(position < mDataset.size()) {
|
||||
|
||||
@ -37,7 +37,7 @@ public class DialogAskCliente_Page1_Commessa_ArrayAdapter extends ArrayAdapter<S
|
||||
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItem = convertView;
|
||||
if(listItem == null) {
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item, parent, false);
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dropdown_simple_item, parent, false);
|
||||
}
|
||||
|
||||
if(position < getCount()) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.choose_art_from_lista_arts;
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
@ -19,8 +19,8 @@ public class DialogChooseArtFromListaMtbColrAdapter extends RecyclerView.Adapter
|
||||
|
||||
protected Context mContext;
|
||||
|
||||
private List<MtbColr> mDataset;
|
||||
private IRecyclerItemClicked<MtbColr> mOnItemClickListener;
|
||||
private final List<MtbColr> mDataset;
|
||||
private final IRecyclerItemClicked<MtbColr> mOnItemClickListener;
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
protected DialogChooseArtFromListaArtItemModelBinding mViewDataBinding;
|
||||
@ -1,4 +1,4 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.choose_art_from_lista_arts;
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
@ -20,7 +20,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
|
||||
|
||||
public class DialogChooseArtFromListaMtbColr {
|
||||
public class DialogChooseArtFromListaMtbColrView {
|
||||
|
||||
|
||||
private Context currentContext;
|
||||
@ -31,11 +31,11 @@ public class DialogChooseArtFromListaMtbColr {
|
||||
private RunnableArgs<MtbColr> mOnItemChoosed;
|
||||
|
||||
public static Dialog make(final Context context, List<MtbColr> mtbColrList, RunnableArgs<MtbColr> onItemChoosed) {
|
||||
return new DialogChooseArtFromListaMtbColr(context, mtbColrList, onItemChoosed).mDialog;
|
||||
return new DialogChooseArtFromListaMtbColrView(context, mtbColrList, onItemChoosed).mDialog;
|
||||
}
|
||||
|
||||
|
||||
private DialogChooseArtFromListaMtbColr(Context context, List<MtbColr> mtbColrList, RunnableArgs<MtbColr> onItemChoosed) {
|
||||
private DialogChooseArtFromListaMtbColrView(Context context, List<MtbColr> mtbColrList, RunnableArgs<MtbColr> onItemChoosed) {
|
||||
currentContext = context;
|
||||
mOnItemChoosed = onItemChoosed;
|
||||
|
||||
@ -10,5 +10,5 @@ public interface DialogInputQuantityV2Component {
|
||||
DialogInputQuantityV2Component create();
|
||||
}
|
||||
|
||||
void inject(DialogInputQuantityV2 dialogInputQuantityV2);
|
||||
void inject(DialogInputQuantityV2View dialogInputQuantityV2);
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.ColorStateList;
|
||||
@ -41,11 +40,10 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbUntMis;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class DialogInputQuantityV2 extends BaseDialogFragment implements DialogInputQuantityV2ViewModel.Listener {
|
||||
public class DialogInputQuantityV2View extends BaseDialogFragment implements DialogInputQuantityV2ViewModel.Listener {
|
||||
|
||||
@Inject
|
||||
DialogInputQuantityV2ViewModel mViewModel;
|
||||
@ -74,13 +72,12 @@ public class DialogInputQuantityV2 extends BaseDialogFragment implements DialogI
|
||||
private boolean mEnableDataCallback = true;
|
||||
|
||||
private int mBarcodeScannerIstanceID;
|
||||
private Dialog mCurrentProgress;
|
||||
|
||||
public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> onComplete, @NotNull Runnable onAbort) {
|
||||
return new DialogInputQuantityV2(dialogInputQuantityV2DTO, onComplete, onAbort);
|
||||
public static DialogInputQuantityV2View newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> onComplete, @NotNull Runnable onAbort) {
|
||||
return new DialogInputQuantityV2View(dialogInputQuantityV2DTO, onComplete, onAbort);
|
||||
}
|
||||
|
||||
private DialogInputQuantityV2(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> onComplete, @NotNull Runnable onAbort) {
|
||||
private DialogInputQuantityV2View(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> onComplete, @NotNull Runnable onAbort) {
|
||||
super();
|
||||
|
||||
this.mDialogInputQuantityV2DTO = dialogInputQuantityV2DTO;
|
||||
@ -156,19 +153,6 @@ public class DialogInputQuantityV2 extends BaseDialogFragment implements DialogI
|
||||
});
|
||||
};
|
||||
|
||||
private void openProgress() {
|
||||
if (this.mCurrentProgress == null) {
|
||||
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this.context);
|
||||
}
|
||||
}
|
||||
|
||||
private void closeProgress() {
|
||||
if (mCurrentProgress != null) {
|
||||
mCurrentProgress.dismiss();
|
||||
mCurrentProgress = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void save() {
|
||||
if (this.mViewModel.validate()) {
|
||||
this.mOnComplete.run(this.mViewModel.getResult(), false);
|
||||
@ -10,6 +10,6 @@ public interface DialogScanArtComponent {
|
||||
DialogScanArtComponent create();
|
||||
}
|
||||
|
||||
void inject(DialogScanArt dialogScanArt);
|
||||
void inject(DialogScanArtView dialogScanArtView);
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.scan_art;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
@ -29,12 +28,11 @@ import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogScanArtBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.choose_art_from_lista_arts.DialogChooseArtFromListaMtbColr;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.DialogChooseArtFromListaMtbColrView;
|
||||
|
||||
public class DialogScanArt extends BaseDialogFragment implements DialogScanArtViewModel.Listener {
|
||||
public class DialogScanArtView extends BaseDialogFragment implements DialogScanArtViewModel.Listener {
|
||||
|
||||
@Inject
|
||||
DialogScanArtViewModel mViewModel;
|
||||
@ -44,16 +42,15 @@ public class DialogScanArt extends BaseDialogFragment implements DialogScanArtVi
|
||||
private DialogScanArtBinding mBindings;
|
||||
|
||||
private int mBarcodeScannerIstanceID;
|
||||
private Dialog mCurrentProgress;
|
||||
|
||||
private RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, MtbColr> mOnItemChoosed = null;
|
||||
|
||||
|
||||
public static DialogScanArt newInstance(@NotNull RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, MtbColr> onComplete) {
|
||||
return new DialogScanArt(onComplete);
|
||||
public static DialogScanArtView newInstance(@NotNull RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, MtbColr> onComplete) {
|
||||
return new DialogScanArtView(onComplete);
|
||||
}
|
||||
|
||||
private DialogScanArt(RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, MtbColr> onItemChoosed) {
|
||||
private DialogScanArtView(RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, MtbColr> onItemChoosed) {
|
||||
super();
|
||||
mOnItemChoosed = onItemChoosed;
|
||||
}
|
||||
@ -114,7 +111,7 @@ public class DialogScanArt extends BaseDialogFragment implements DialogScanArtVi
|
||||
|
||||
this.mViewModel.processBarcodeDTO(data, (status, mtbAart, ean128Model, mtbColrList) -> {
|
||||
if(mtbColrList != null && mtbColrList.size() > 0) {
|
||||
DialogChooseArtFromListaMtbColr.make(mContext, mtbColrList, mtbColrChose -> {
|
||||
DialogChooseArtFromListaMtbColrView.make(mContext, mtbColrList, mtbColrChose -> {
|
||||
mOnItemChoosed.run(status, mtbAart, ean128Model, mtbColrChose);
|
||||
}).show();
|
||||
} else {
|
||||
@ -132,21 +129,7 @@ public class DialogScanArt extends BaseDialogFragment implements DialogScanArtVi
|
||||
@Override
|
||||
public void onError(Exception ex) {
|
||||
this.closeProgress();
|
||||
UtilityExceptions.defaultException(mContext, ex, mCurrentProgress);
|
||||
UtilityExceptions.defaultException(mContext, ex);
|
||||
BarcodeManager.enable();
|
||||
}
|
||||
|
||||
|
||||
protected void openProgress() {
|
||||
if (this.mCurrentProgress == null) {
|
||||
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
}
|
||||
}
|
||||
|
||||
protected void closeProgress() {
|
||||
if (mCurrentProgress != null) {
|
||||
mCurrentProgress.dismiss();
|
||||
mCurrentProgress = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -130,7 +130,6 @@ public class DialogScanArtViewModel {
|
||||
if (this.mListener != null) mListener.onError(ex);
|
||||
}
|
||||
|
||||
|
||||
public void setListener(Listener listener) {
|
||||
this.mListener = listener;
|
||||
}
|
||||
|
||||
189
app/src/main/res/layout/dialog_ask_magazzino_prossimita.xml
Normal file
189
app/src/main/res/layout/dialog_ask_magazzino_prossimita.xml
Normal file
@ -0,0 +1,189 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityBigDecimal" />
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaViewModel" />
|
||||
|
||||
<variable
|
||||
name="view"
|
||||
type="it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaView" />
|
||||
</data>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/light_blue_300"
|
||||
android:gravity="center_horizontal">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_error_white_24dp"
|
||||
android:layout_margin="24dp"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="24dp"
|
||||
android:paddingLeft="24dp"
|
||||
android:paddingRight="24dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextViewMaterial.DialogTitle"
|
||||
android:text="@string/production_line"
|
||||
android:gravity="center_horizontal"/>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_linea_prod"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/production_line">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/dropdown_linea_prod"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="2"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_start_date"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/start_date"
|
||||
android:layout_weight="1"
|
||||
android:paddingEnd="4dp">
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/filled_exposed_dropdown_start_date"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:focusable="false"
|
||||
android:singleLine="true"
|
||||
app:binding="@{viewmodel.startDateBindable}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_end_date"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/end_date"
|
||||
android:layout_weight="1"
|
||||
android:paddingStart="4dp">
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/filled_exposed_dropdown_end_date"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:focusable="false"
|
||||
android:singleLine="true"
|
||||
app:binding="@{viewmodel.endDateBindable}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:gravity="bottom|center_horizontal">
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_abort"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryOutline"
|
||||
app:icon="@drawable/ic_clear_24dp"
|
||||
app:strokeColor="@color/colorPrimary"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="@string/abort"/>
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_confirm"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryFull"
|
||||
app:icon="@drawable/ic_save_24dp"
|
||||
android:text="@string/confirm"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</layout>
|
||||
@ -43,7 +43,7 @@
|
||||
app:icon="@drawable/ic_clear_24dp"
|
||||
app:strokeColor="@color/colorPrimary"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="Annulla"/>
|
||||
android:text="@string/abort"/>
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
@ -52,7 +52,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryFull"
|
||||
app:icon="@drawable/ic_save_24dp"
|
||||
android:text="Salva"/>
|
||||
android:text="@string/confirm"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
<variable
|
||||
name="view"
|
||||
type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2" />
|
||||
type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:tools="http://schemas.android.com/tools">
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment">
|
||||
</FrameLayout>
|
||||
</layout>
|
||||
@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
<import type="androidx.databinding.ObservableList" />
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="view"
|
||||
type="it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdFragment" />
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdViewModel" />
|
||||
</data>
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdFragment">
|
||||
|
||||
<!-- TODO: Update blank fragment layout -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:text="@string/hello_blank_fragment" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</layout>
|
||||
@ -19,6 +19,7 @@
|
||||
<string name="accettazione_ordine_inevaso_title_multiple_order">Ordini di accettazione</string>
|
||||
<string name="vendita_title_fragment">Spedizione</string>
|
||||
<string name="rettifica_giacenze_fragment_title">Rettifica giacenze</string>
|
||||
<string name="prod_fabbisogno_linee_prod_title">Fabbisogno linee prod.</string>
|
||||
<string name="versamento_merce_fragment_title">Posizionamento merce</string>
|
||||
<string name="error">Errore</string>
|
||||
<string name="ops">Ops</string>
|
||||
@ -203,6 +204,8 @@
|
||||
<string name="job">Commessa</string>
|
||||
<string name="recipient">Destinatario</string>
|
||||
<string name="ship_date">Data consegna</string>
|
||||
<string name="start_date">Data inizio</string>
|
||||
<string name="end_date">Data fine</string>
|
||||
<string name="document_date">Data documento</string>
|
||||
<string name="terms_of_delivery">Termini di consegna</string>
|
||||
<string name="vehicle">Automezzo</string>
|
||||
@ -215,6 +218,7 @@
|
||||
<string name="no_items_found_message">Nessun articolo trovato</string>
|
||||
<string name="no_lu_found_message">Nessuna UL trovata</string>
|
||||
<string name="no_orders_found_message">Non sono stati trovati ordini</string>
|
||||
<string name="no_one_order_selected">Non è stato selezionato alcun ordine</string>
|
||||
<string name="gestione_A_L_only_accepted_message">Sono ammesse solo UL di <b>Acquisto</b> o <b>Lavorazione</b> qui</string>
|
||||
<string name="gestione_A_V_not_accepted_message"><![CDATA[Le UL di tipo <b>Acquisto</b> o <b>Vendita</b> non sono ammesse qui]]></string>
|
||||
<string name="gestione_V_not_accepted_message"><![CDATA[Le UL di tipo <b>Vendita</b> non sono ammesse qui]]></string>
|
||||
@ -268,11 +272,13 @@
|
||||
<string name="checkout">Vendita</string>
|
||||
<string name="manufacture">Lav. terzi / Trasf. interni</string>
|
||||
<string name="production">Produzione</string>
|
||||
<string name="production_line">Linea di produzione</string>
|
||||
<string name="internal_handling">Movimentazione interna</string>
|
||||
<string name="prod_ordine_produzione_title_fragment">Accettazione da ordine</string>
|
||||
<string name="prod_ordine_lavorazione_title_fragment">Picking da ordine</string>
|
||||
<string name="prod_versamento_materiale_title_fragment">Versamento materiale</string>
|
||||
<string name="prod_recupero_materiale_title_fragment">Recupero materiale</string>
|
||||
<string name="please_select_an_item">Seleziona un elemento per continuare</string>
|
||||
|
||||
<string name="select_a_customer_message">Prima di procedere seleziona un <b>cliente</b></string>
|
||||
<string name="select_a_recipient_message">Prima di procedere seleziona un <b>destinatario</b></string>
|
||||
|
||||
@ -57,6 +57,7 @@
|
||||
<string name="accettazione_ordine_inevaso_title_multiple_order">Multiple acceptance orders</string>
|
||||
<string name="vendita_title_fragment">Check out</string>
|
||||
<string name="rettifica_giacenze_fragment_title">Inventory</string>
|
||||
<string name="prod_fabbisogno_linee_prod_title">Production line requirements</string>
|
||||
<string name="versamento_merce_fragment_title">Items placement</string>
|
||||
<string name="free_picking_title_fragment">Free picking</string>
|
||||
<string name="error">Error</string>
|
||||
@ -206,6 +207,8 @@
|
||||
<string name="job">Job</string>
|
||||
<string name="recipient">Recipient</string>
|
||||
<string name="ship_date">Ship date</string>
|
||||
<string name="start_date">Start date</string>
|
||||
<string name="end_date">End date</string>
|
||||
<string name="document_date">Document date</string>
|
||||
<string name="terms_of_delivery">Terms of delivery</string>
|
||||
<string name="vehicle">Vehicle</string>
|
||||
@ -218,6 +221,7 @@
|
||||
<string name="no_items_found_message">No items found</string>
|
||||
<string name="no_lu_found_message">No LU found</string>
|
||||
<string name="no_orders_found_message">No orders found</string>
|
||||
<string name="no_one_order_selected">No one order is selected</string>
|
||||
<string name="gestione_A_L_only_accepted_message">Only <b>Purchase</b> or <b>Production\'s</b> LU are accepted here</string>
|
||||
<string name="gestione_A_V_not_accepted_message">The LU of type Purchase or Sale is not accepted here</string>
|
||||
<string name="gestione_V_not_accepted_message">The LU of type Sale is not accepted here</string>
|
||||
@ -273,11 +277,13 @@
|
||||
<string name="checkout">Check out</string>
|
||||
<string name="manufacture">Manufacture / Internal movement</string>
|
||||
<string name="production">Production</string>
|
||||
<string name="production_line">Production line</string>
|
||||
<string name="internal_handling">Internal handling</string>
|
||||
<string name="prod_ordine_produzione_title_fragment">Production picking</string>
|
||||
<string name="prod_ordine_lavorazione_title_fragment">Manufacture picking</string>
|
||||
<string name="prod_versamento_materiale_title_fragment">Deposit raw material</string>
|
||||
<string name="prod_recupero_materiale_title_fragment">Recover raw material</string>
|
||||
<string name="please_select_an_item">Please select an item before proceed</string>
|
||||
|
||||
|
||||
<string name="select_a_customer_message">Please, select a <b>customer</b> before proceeding</string>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user