Finish v1.32.22(362)

This commit is contained in:
Giuseppe Scorrano 2023-03-29 13:48:54 +02:00
commit cb4f9e68f5
13 changed files with 236 additions and 199 deletions

View File

@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 361 def appVersionCode = 362
def appVersionName = '1.32.21' def appVersionName = '1.32.22'
signingConfigs { signingConfigs {
release { release {

View File

@ -201,7 +201,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setID(it.integry.integrywmsnative.R.id.nav_pv_doc_interni) .setID(it.integry.integrywmsnative.R.id.nav_pv_doc_interni)
.setTitleText(it.integry.integrywmsnative.R.string.doc_interni) .setTitleText(it.integry.integrywmsnative.R.string.doc_interni)
.setTitleIcon(R.drawable.ic_dashboard_contab_doc_interni) .setTitleIcon(R.drawable.ic_dashboard_contab_doc_interni)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_contab_doc_interni) .setDrawerIcon(R.drawable.ic_documents_outline)
.setFragmentFactory(DocInterniFragment::newInstance)) .setFragmentFactory(DocInterniFragment::newInstance))
// .addItem(new MenuItem() // .addItem(new MenuItem()

View File

@ -56,6 +56,7 @@ public class DBSettingsModel {
private boolean showCodFornSpedizione = true; private boolean showCodFornSpedizione = true;
private boolean flagCanCreateInventario = true; private boolean flagCanCreateInventario = true;
private boolean flagCanAddUnknownItemsInventario = true; private boolean flagCanAddUnknownItemsInventario = true;
private boolean flagShouldAskToCreateOrUpdateRowInventario = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() { public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza; return flagSpedizioneEnableFakeGiacenza;
@ -418,6 +419,15 @@ public class DBSettingsModel {
return this; return this;
} }
public boolean isFlagShouldAskToCreateOrUpdateRowInventario() {
return flagShouldAskToCreateOrUpdateRowInventario;
}
public DBSettingsModel setFlagShouldAskToCreateOrUpdateRowInventario(boolean flagShouldAskToCreateOrUpdateRowInventario) {
this.flagShouldAskToCreateOrUpdateRowInventario = flagShouldAskToCreateOrUpdateRowInventario;
return this;
}
public boolean isFlagConsentiFuoriPianoLogistico() { public boolean isFlagConsentiFuoriPianoLogistico() {
return flagConsentiFuoriPianoLogistico; return flagConsentiFuoriPianoLogistico;
} }

View File

@ -363,6 +363,10 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("INVENTARIO") .setSection("INVENTARIO")
.setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS")); .setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("INVENTARIO")
.setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW"));
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> { mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
@ -398,6 +402,7 @@ public class SettingsManager {
dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE)); dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE));
dbSettingsModelIstance.setFlagCanCreateInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_CREATE_INVENTARIO", Boolean.class, Boolean.TRUE)); dbSettingsModelIstance.setFlagCanCreateInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_CREATE_INVENTARIO", Boolean.class, Boolean.TRUE));
dbSettingsModelIstance.setFlagCanAddUnknownItemsInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_ADD_UNKNOWN_ITEMS", Boolean.class, Boolean.TRUE)); dbSettingsModelIstance.setFlagCanAddUnknownItemsInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_ADD_UNKNOWN_ITEMS", Boolean.class, Boolean.TRUE));
dbSettingsModelIstance.setFlagShouldAskToCreateOrUpdateRowInventario(getValueFromList(list, "INVENTARIO", "FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW", Boolean.class, Boolean.FALSE));
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null) if (notePerdita != null)
@ -435,7 +440,7 @@ public class SettingsManager {
} else if (clazz == Integer.class && value.getValue() != null) { } else if (clazz == Integer.class && value.getValue() != null) {
return clazz.cast(Integer.parseInt(value.getValue())); return clazz.cast(Integer.parseInt(value.getValue()));
} }
} else { } else if(defaultValue == null) {
if (clazz == Boolean.class) { if (clazz == Boolean.class) {
return clazz.cast(Boolean.FALSE); return clazz.cast(Boolean.FALSE);
} else if (clazz == Integer.class) { } else if (clazz == Integer.class) {

View File

@ -3,7 +3,6 @@ package it.integry.integrywmsnative.gest.contab_doc_interni;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -30,7 +29,6 @@ import it.integry.integrywmsnative.core.expansion.BaseFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO; import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.FragmentDocInterniBinding; import it.integry.integrywmsnative.databinding.FragmentDocInterniBinding;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoView; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoView;
@ -125,26 +123,7 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
@Override @Override
public void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection) { public void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection) {
mViewModel.setSelectedDocDetails(selection); mViewModel.setSelectedDocDetails(selection);
mBinding.invalidateAll();
if (selection.isFornitoreRequired()) {
mBinding.codAnagContainer.setVisibility(View.VISIBLE);
} else {
mBinding.codAnagContainer.setVisibility(View.GONE);
}
// if (selection.getGruppoArt() != null) {
// mBinding.mtbGrpContainer.setVisibility(View.VISIBLE);
// } else {
// mBinding.mtbGrpContainer.setVisibility(View.GONE);
// }
if (selection.isDocumentRequired()) {
mBinding.docContainer.setVisibility(View.VISIBLE);
mBinding.document.setText(Html.fromHtml(getString(R.string.doc_testata, String.valueOf(selection.getNumDoc()), UtilityDate.formatDate(selection.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))));
} else {
mBinding.docContainer.setVisibility(View.GONE);
}
} }
@Override @Override

View File

@ -35,7 +35,7 @@ public class DocInterniViewModel {
private boolean docsFetched = true; private boolean docsFetched = true;
private int nextNumCollo = 0; private int nextNumCollo = 0;
private List<DocumentoArtDTO> availableArts; private List<DocumentoArtDTO> availableArts;
private MutableLiveData<List<DocInternoWrapper>> mDocsList = new MutableLiveData<>(); private final MutableLiveData<List<DocInternoWrapper>> mDocsList = new MutableLiveData<>();
public TipoDocDTO dtbTipi; public TipoDocDTO dtbTipi;
public GruppoArticoloDTO mtbGrup; public GruppoArticoloDTO mtbGrup;

View File

@ -9,7 +9,6 @@ import org.json.JSONObject;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -37,18 +36,17 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
public class DocInterniEditFormViewModel { public class DocInterniEditFormViewModel {
@Inject private final MtbColrDataSource mtbColrRepository;
MtbColrDataSource mtbColrRepository; private final MtbColtRepository mtbColtRepository;
@Inject
MtbColtRepository mtbColtRepository;
private final DocInterniRESTConsumer docInterniRESTConsumer; private final DocInterniRESTConsumer docInterniRESTConsumer;
private DocInterniEditFormViewModel.Listener listener; private Listener listener;
private List<DocumentoArtDTO> productsList; private List<DocumentoArtDTO> productsList;
private HashMap<String, String> flattedBarcodesCodMarts;
private TipoDocDTO tipoDoc; private TipoDocDTO tipoDoc;
private boolean isCheckPartitaMag = false; private boolean isCheckPartitaMag = false;
private JSONObject checkFornitoreRules = null; private JSONObject checkFornitoreRules = null;
public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>(); public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>();
public MutableLiveData<List<SqlMtbColr>> docRows = new MutableLiveData<>(); public MutableLiveData<List<SqlMtbColr>> docRows = new MutableLiveData<>();
@ -300,13 +298,6 @@ public class DocInterniEditFormViewModel {
public void setProductsList(List<DocumentoArtDTO> productsList) { public void setProductsList(List<DocumentoArtDTO> productsList) {
this.productsList = productsList; this.productsList = productsList;
this.flattedBarcodesCodMarts = new HashMap<>();
for (DocumentoArtDTO documentArt : productsList) {
for (String barcode : documentArt.getBarcode()) {
this.flattedBarcodesCodMarts.put(barcode, documentArt.getCodMart());
}
}
} }
public void processBarcode(BarcodeScanDTO dto) { public void processBarcode(BarcodeScanDTO dto) {

View File

@ -36,6 +36,8 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityPickingInventarioBinding; import it.integry.integrywmsnative.databinding.ActivityPickingInventarioBinding;
import it.integry.integrywmsnative.databinding.ActivityPickingInventarioListItemBinding; import it.integry.integrywmsnative.databinding.ActivityPickingInventarioListItemBinding;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_row_actions.BottomSheetInventarioRowActionsView; import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_row_actions.BottomSheetInventarioRowActionsView;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
@ -99,7 +101,8 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
mViewModel.init( mViewModel.init(
DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO)), DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO)),
DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO_ARTS)), DataCache.retrieveItem(getIntent().getStringExtra(KEY_INVENTARIO_ARTS)),
SettingsManager.iDB().isFlagCanAddUnknownItemsInventario()); SettingsManager.iDB().isFlagCanAddUnknownItemsInventario(),
SettingsManager.iDB().isFlagShouldAskToCreateOrUpdateRowInventario());
initToolbar(); initToolbar();
initBarcodeReader(); initBarcodeReader();
@ -236,6 +239,36 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
} }
@Override
public void onItemAlreadyFound(InventarioArtDTO matchedArt, List<InventarioRowRoomDTO> alreadyScannedItems) {
final List<DialogSelectDocRowsItemListModel<Object>> dialogSelectDocRowsItemListModels = Stream.of(alreadyScannedItems)
.map(x -> new DialogSelectDocRowsItemListModel<>()
.setBarcode(x.getScanCodBarre())
.setCodMart(x.getCodMart())
.setDescrizione(x.getDescrizione())
.setQtaOrd(x.getQta())
.setUntMisOrd(x.getUntMis())
.setNew(false)
.setOriginalModel(x))
.toList();
dialogSelectDocRowsItemListModels.add(new DialogSelectDocRowsItemListModel<>()
.setCodMart(matchedArt.getCodMart())
.setDescrizione(matchedArt.getDescrizione())
.setQtaOrd(BigDecimal.ZERO)
.setUntMisOrd(matchedArt.getUntMis())
.setNew(true));
DialogSelectDocRowsView.newInstance(dialogSelectDocRowsItemListModels, data -> {
if(data.isNew())
this.mViewModel.dispatchRowInsert(null, matchedArt, null);
else
this.mViewModel.dispatchRowEdit(matchedArt.toMtbAart(), (InventarioRowRoomDTO) data.getOriginalModel());
}, () -> {
}).show(this.getSupportFragmentManager(), "DialogSelectDocRowsView");
}
public void showAvailableArts() { public void showAvailableArts() {
var listaMtbAart = Stream.of(this.mViewModel.getAvailableArts()) var listaMtbAart = Stream.of(this.mViewModel.getAvailableArts())
.map(InventarioArtDTO::toMtbAart) .map(InventarioArtDTO::toMtbAart)

View File

@ -4,6 +4,8 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModel;
import com.annimon.stream.Stream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
@ -37,6 +39,7 @@ public class PickingInventarioViewModel extends ViewModel {
private final InventarioRowRepository inventarioRowRepository; private final InventarioRowRepository inventarioRowRepository;
private boolean canAddUnknownItems; private boolean canAddUnknownItems;
private boolean flagShouldAskToCreateOrUpdateRowInventario;
public MutableLiveData<InventarioRoomDTO> currentInventario = new MutableLiveData<>(); public MutableLiveData<InventarioRoomDTO> currentInventario = new MutableLiveData<>();
public LiveData<List<InventarioRowRoomDTO>> currentInventarioRows = new MutableLiveData<>(); public LiveData<List<InventarioRowRoomDTO>> currentInventarioRows = new MutableLiveData<>();
@ -51,8 +54,9 @@ public class PickingInventarioViewModel extends ViewModel {
this.inventarioRowRepository = inventarioRowRepository; this.inventarioRowRepository = inventarioRowRepository;
} }
public void init(InventarioRoomDTO inventarioRoomDTO, List<InventarioArtDTO> inventarioArts, boolean canAddUnknownItems) { public void init(InventarioRoomDTO inventarioRoomDTO, List<InventarioArtDTO> inventarioArts, boolean canAddUnknownItems, boolean flagShouldAskToCreateOrUpdateRowInventario) {
this.canAddUnknownItems = canAddUnknownItems; this.canAddUnknownItems = canAddUnknownItems;
this.flagShouldAskToCreateOrUpdateRowInventario = flagShouldAskToCreateOrUpdateRowInventario;
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
@ -159,24 +163,41 @@ public class PickingInventarioViewModel extends ViewModel {
if (canAddUnknownItems && matchedArt == null) { if (canAddUnknownItems && matchedArt == null) {
matchedArt = new InventarioArtDTO() matchedArt = new InventarioArtDTO()
.setBarcode(barcodeList) .setBarcode(barcodeList)
.setFlagQtaCnfFissa(true) .setFlagQtaCnfFissa(true)
.setPlu(false) .setPlu(false)
.setUntMis("PZ") .setUntMis("PZ")
.setQtaCnf(BigDecimal.ONE); .setQtaCnf(BigDecimal.ONE);
} }
if (matchedArt != null) { if (matchedArt != null) {
this.dispatchRowInsert(barcodeProd, matchedArt, ean128Model); var alreadyScannedItems = searchArtInAlreadyScannedItems(matchedArt);
if (alreadyScannedItems == null || alreadyScannedItems.isEmpty() || !flagShouldAskToCreateOrUpdateRowInventario)
this.dispatchRowInsert(barcodeProd, matchedArt, ean128Model);
else {
this.sendOnItemAlreadyFound(matchedArt, alreadyScannedItems);
}
onComplete.run(); onComplete.run();
} else } else
this.sendError(new NoResultFromBarcodeException(barcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
}
private List<InventarioRowRoomDTO> searchArtInAlreadyScannedItems(InventarioArtDTO inventarioArtDTO) {
final List<InventarioRowRoomDTO> inventarioRows = this.currentInventarioRows.getValue();
if (inventarioRows == null) return null;
return Stream.of(inventarioRows)
.filter(x -> x.getCodMart().equalsIgnoreCase(inventarioArtDTO.getCodMart()))
.toList();
} }
private void dispatchRowInsert(String barcode, InventarioArtDTO inventarioArtDTO, Ean128Model ean128Model) { public void dispatchRowInsert(String barcode, InventarioArtDTO inventarioArtDTO, Ean128Model ean128Model) {
var mtbAart = inventarioArtDTO.toMtbAart(); var mtbAart = inventarioArtDTO.toMtbAart();
mtbAart.setFlagTracciabilita("N"); mtbAart.setFlagTracciabilita("N");
@ -290,7 +311,7 @@ public class PickingInventarioViewModel extends ViewModel {
} }
} }
private void dispatchRowEdit(MtbAart mtbAart, InventarioRowRoomDTO inventarioRowRoomDTO) { public void dispatchRowEdit(MtbAart mtbAart, InventarioRowRoomDTO inventarioRowRoomDTO) {
final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO() final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
.setMtbAart(mtbAart); .setMtbAart(mtbAart);
@ -393,6 +414,11 @@ public class PickingInventarioViewModel extends ViewModel {
onComplete); onComplete);
} }
private void sendOnItemAlreadyFound(InventarioArtDTO matchedArt, List<InventarioRowRoomDTO> alreadyScannedItems) {
if(this.mListener != null)
this.mListener.onItemAlreadyFound(matchedArt, alreadyScannedItems);
}
public PickingInventarioViewModel setListener(Listener listener) { public PickingInventarioViewModel setListener(Listener listener) {
this.mListener = listener; this.mListener = listener;
return this; return this;
@ -419,5 +445,7 @@ public class PickingInventarioViewModel extends ViewModel {
RunnableArgss<PickedQuantityDTO, Boolean> onComplete); RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
void onItemAlreadyFound(InventarioArtDTO matchedArt, List<InventarioRowRoomDTO> alreadyScannedItems);
} }
} }

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,1C3.9,1 3,1.9 3,3L3,17L5,17L5,3L17,3L17,1L5,1zM9,5C7.9,5 7,5.9 7,7L7,21C7,22.1 7.9,23 9,23L20,23C21.1,23 22,22.1 22,21L22,10L17,5L9,5zM9,7L16,7L16,11L20,11L20,21L9,21L9,7zM11,13L11,15L18,15L18,13L11,13zM11,17L11,19L18,19L18,17L11,17z"
android:fillColor="#5B5B5B"/>
</vector>

View File

@ -79,7 +79,6 @@
app:cardElevation="4dp"> app:cardElevation="4dp">
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/profile_root_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/colorPrimary" android:background="@color/colorPrimary"
@ -93,7 +92,7 @@
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:src="@drawable/ic_doc_interni_outline" android:src="@drawable/ic_document_outline"
android:tint="@color/white" /> android:tint="@color/white" />
@ -114,18 +113,10 @@
android:layout_toStartOf="@id/loaded_arts_info_layout" android:layout_toStartOf="@id/loaded_arts_info_layout"
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ID:"
android:textColor="@android:color/white" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard" style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
app:binding="@{view.documentHeader}" app:binding="@{view.documentHeader}"
android:textColor="@android:color/white" android:textColor="@android:color/white"
tools:text="670" /> tools:text="670" />
@ -186,7 +177,7 @@
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="Non definito" android:text="Non definito"
android:textStyle="italic" android:textStyle="italic"
app:visibility="@{view.documentRifHeader.get() == null}" /> app:visibility="@{view.documentRifHeader.get().empty}" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard" style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
@ -194,7 +185,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
app:binding="@{view.documentRifHeader}" app:binding="@{view.documentRifHeader}"
app:visibility="@{view.documentRifHeader.get() != null}" /> app:reverse_visibility="@{view.documentRifHeader.get().empty}" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
@ -216,7 +207,7 @@
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="Non definito" android:text="Non definito"
android:textStyle="italic" android:textStyle="italic"
app:visibility="@{view.codAnag.get() == null}" /> app:visibility="@{view.codAnag.get().empty}" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard" style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
@ -224,7 +215,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
app:binding="@{view.codAnag}" app:binding="@{view.codAnag}"
app:visibility="@{view.codAnag.get() != null}" /> app:reverse_visibility="@{view.codAnag.get().empty}" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>

View File

@ -6,6 +6,10 @@
<data> <data>
<import type="androidx.databinding.ObservableList" /> <import type="androidx.databinding.ObservableList" />
<import type="it.integry.integrywmsnative.R" />
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
<import type="android.text.Html" />
<import type="androidx.core.content.ContextCompat" />
<variable <variable
name="view" name="view"
@ -31,216 +35,203 @@
android:background="@color/full_white" android:background="@color/full_white"
android:orientation="vertical"> android:orientation="vertical">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical"
android:paddingTop="8dp">
<RelativeLayout <androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="12dp"
app:cardCornerRadius="16dp"
app:cardElevation="4dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="8dp" android:background="@color/colorPrimary"
android:layout_marginRight="8dp" android:orientation="horizontal"
android:background="@drawable/gray_detail_background_round16"
android:layout_gravity="center_vertical"
android:padding="16dp"> android:padding="16dp">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_documents_outline"
android:tint="@color/white" />
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:text="Tipo doc:" />
android:text="@string/cod_dtip_name"
android:textColor="@android:color/black"
android:textSize="16sp" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/cod_dtip" style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="Non definito"
android:textStyle="italic"
app:visibility="@{viewModel.dtbTipi.codDtip.empty}"
tools:visibility="gone"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@{viewModel.dtbTipi.codDtip}" android:text="@{viewModel.dtbTipi.codDtip}"
android:textColor="@android:color/black" app:reverse_visibility="@{viewModel.dtbTipi.codDtip.empty}"
android:textSize="16sp"
android:textStyle="bold"
tools:text="114" /> tools:text="114" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/desc_tipo_doc" style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
android:text="@{viewModel.dtbTipi.descrizione}" android:text="@{viewModel.dtbTipi.descrizione}"
android:textColor="@android:color/black" app:reverse_visibility="@{viewModel.dtbTipi.codDtip.empty}"
android:textSize="16sp"
android:textStyle="bold"
tools:text="PERDITA" /> tools:text="PERDITA" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/cod_anag_container" android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:layout_marginTop="2dp"
android:orientation="horizontal"
app:reverse_visibility="@{viewModel.fornitore == null}">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:text="Fornitore:" />
android:text="@string/cod_anag_name"
android:textColor="@android:color/black"
android:textSize="16sp" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/cod_anag" style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="end" android:layout_marginStart="4dp"
android:maxLines="1"
android:text="@{viewModel.fornitore.label}" android:text="@{viewModel.fornitore.label}"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
tools:text="F0000 - CARELLI" /> tools:text="F0000 - CARELLI" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/doc_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/document_label"
android:textColor="@android:color/black"
android:textSize="16sp" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/document"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
tools:text="n. 123 del 12/11/2021" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:layout_marginTop="2dp"
android:orientation="horizontal"
app:reverse_visibility="@{UtilityString.isNullOrEmpty(viewModel.numDoc)}">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:text="Documento:" />
android:text="@string/articoli_disponibili"
android:textColor="@android:color/black"
android:textSize="14sp" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/count_arts" style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@android:color/black" android:layout_marginStart="4dp"
android:textSize="14sp" android:text="@{Html.fromHtml(context.getString(R.string.doc_testata, viewModel.numDoc, UtilityDate.formatDate(viewModel.dataDoc, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)))}"
android:textStyle="bold" tools:text="n. 123 del 29/03/2023" />
app:binding="@{viewModel.artsSize}"
tools:text="0" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</RelativeLayout> </androidx.appcompat.widget.LinearLayoutCompat>
<RelativeLayout </androidx.cardview.widget.CardView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/doc_interni_main_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:layout_marginTop="16dp"
android:background="@color/full_white"
android:paddingStart="2dp"
android:paddingEnd="2dp"
tools:itemCount="5"
tools:listitem="@layout/doc_interni_list_model" />
<androidx.recyclerview.widget.RecyclerView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/doc_interni_main_list" android:id="@+id/doc_interni_empty_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="16dp" android:alpha="0.3">
android:background="@color/full_white"
android:paddingStart="2dp"
android:paddingEnd="2dp" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.Guideline
android:id="@+id/doc_interni_empty_view" android:id="@+id/guideline_empty_top"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:alpha="0.3"> android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_top" android:id="@+id/guideline_empty_left"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="72dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:adjustViewBounds="true"
app:layout_constraintGuide_percent="0.2" /> android:src="@drawable/ic_playlist_add_check_24dp" />
<androidx.constraintlayout.widget.Guideline <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/guideline_empty_left"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical" android:text="@string/no_doc_found_message"
android:textColor="@android:color/black"
android:textSize="18sp" />
</LinearLayout>
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right" </androidx.constraintlayout.widget.ConstraintLayout>
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="72dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_playlist_add_check_24dp" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/no_doc_found_message"
android:textColor="@android:color/black"
android:textSize="18sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>