Finish v1.40.02(419)
This commit is contained in:
commit
e832db3214
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 416
|
def appVersionCode = 419
|
||||||
def appVersionName = '1.39.03'
|
def appVersionName = '1.40.02'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|||||||
@ -29,6 +29,8 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.sele
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaModule;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariModule;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariModule;
|
||||||
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_actions.BottomSheetInventarioActionsComponent;
|
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_actions.BottomSheetInventarioActionsComponent;
|
||||||
@ -206,7 +208,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
DialogInfoAggiuntiveLUModule.class,
|
DialogInfoAggiuntiveLUModule.class,
|
||||||
DialogAskLineaProdModule.class,
|
DialogAskLineaProdModule.class,
|
||||||
ProdRiposizionamentoDaProdModule.class,
|
ProdRiposizionamentoDaProdModule.class,
|
||||||
DialogInfoGiacenzaModule.class
|
DialogInfoGiacenzaModule.class,
|
||||||
|
ArticoliInGiacenzaModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@ -346,6 +349,8 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DialogInfoGiacenzaComponent.Factory dialogInfoGiacenzaComponent();
|
DialogInfoGiacenzaComponent.Factory dialogInfoGiacenzaComponent();
|
||||||
|
|
||||||
|
ArticoliInGiacenzaComponent.Factory controlloGiacenzeComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaFragment;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
|
||||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
||||||
@ -115,7 +116,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_external)
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, SettingsManager.iDB().isFlagShowInfo() ? DialogInfoSituazioneArticoloView.class : null)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_lav_picking)
|
.setID(R.id.nav_free_lav_picking)
|
||||||
@ -218,6 +219,13 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setDrawerIcon(R.drawable.ic_black_empty_box)
|
.setDrawerIcon(R.drawable.ic_black_empty_box)
|
||||||
.setFragmentFactory(ElencoInventariFragment::newInstance))
|
.setFragmentFactory(ElencoInventariFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_articoli_in_giacenza)
|
||||||
|
.setCodMenu("MG070")
|
||||||
|
.setTitleText(R.string.articoli_in_giacenza_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_articoli_in_giacenza)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_empty_box)
|
||||||
|
.setFragmentFactory(ArticoliInGiacenzaFragment::newInstance))
|
||||||
|
|
||||||
).addGroup(
|
).addGroup(
|
||||||
new MenuGroup()
|
new MenuGroup()
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import java.math.BigDecimal;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ValerioC on 06/03/2018.
|
* Created by ValerioC on 06/03/2018.
|
||||||
@ -292,6 +294,12 @@ public class MvwSitArtUdcDetInventario {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getQtaText(){
|
||||||
|
String text = UtilityNumber.decimalToString(this.qtaCol);
|
||||||
|
text += !UtilityString.isNullOrEmpty(this.untMis) ? "\n" + this.untMis : "";
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
public MtbColr toMtbColr() {
|
public MtbColr toMtbColr() {
|
||||||
return new MtbColr()
|
return new MtbColr()
|
||||||
.setCodJcom(getCodJcom())
|
.setCodJcom(getCodJcom())
|
||||||
|
|||||||
@ -41,6 +41,7 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
public void onResponse(Call<ServiceRESTResponse<List<MvwSitArtUdcDetInventario>>> call, Response<ServiceRESTResponse<List<MvwSitArtUdcDetInventario>>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<MvwSitArtUdcDetInventario>>> call, Response<ServiceRESTResponse<List<MvwSitArtUdcDetInventario>>> response) {
|
||||||
analyzeAnswer(response, "getGiacenzeInPosizione", inventarioList -> {
|
analyzeAnswer(response, "getGiacenzeInPosizione", inventarioList -> {
|
||||||
|
|
||||||
|
if(inventarioList != null && !inventarioList.isEmpty()){
|
||||||
List<String> codMarts = Stream.of(inventarioList)
|
List<String> codMarts = Stream.of(inventarioList)
|
||||||
.map(x -> x.getCodMart().trim())
|
.map(x -> x.getCodMart().trim())
|
||||||
.toList();
|
.toList();
|
||||||
@ -62,6 +63,9 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
onComplete.run(inventarioList);
|
onComplete.run(inventarioList);
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
|
}else{
|
||||||
|
onComplete.run(new ArrayList<>());
|
||||||
|
}
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -157,6 +157,10 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void printClosedOrders(PrintOrderCloseDTO dto, String codMdep, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public void printClosedOrders(PrintOrderCloseDTO dto, String codMdep, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class, 240);
|
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class, 240);
|
||||||
Call<ServiceRESTResponse<Object>> callable = printerService.printClosedOrders(codMdep, dto);
|
Call<ServiceRESTResponse<Object>> callable = printerService.printClosedOrders(codMdep, dto);
|
||||||
|
|||||||
@ -74,6 +74,7 @@ public class DBSettingsModel {
|
|||||||
private String viewPosizioni;
|
private String viewPosizioni;
|
||||||
private boolean flagDeleteRowOnClose = false;
|
private boolean flagDeleteRowOnClose = false;
|
||||||
private boolean flagAllowBarcodeFornitore = false;
|
private boolean flagAllowBarcodeFornitore = false;
|
||||||
|
private boolean flagShowInfo = false;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@ -606,4 +607,13 @@ public class DBSettingsModel {
|
|||||||
this.flagAllowBarcodeFornitore = flagAllowBarcodeFornitore;
|
this.flagAllowBarcodeFornitore = flagAllowBarcodeFornitore;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagShowInfo() {
|
||||||
|
return flagShowInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagShowInfo(boolean flagShowInfo) {
|
||||||
|
this.flagShowInfo = flagShowInfo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -283,6 +283,12 @@ public class SettingsManager {
|
|||||||
.setKeySection("FLAG_GROUP_BY_GRP_MERC")
|
.setKeySection("FLAG_GROUP_BY_GRP_MERC")
|
||||||
.setSetter(dbSettingsModelIstance::setGroupPoductionByCommodityGroup)
|
.setSetter(dbSettingsModelIstance::setGroupPoductionByCommodityGroup)
|
||||||
.setDefaultValue(false));
|
.setDefaultValue(false));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("PRODUZIONE")
|
||||||
|
.setKeySection("FLAG_SHOW_INFO")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagShowInfo)
|
||||||
|
.setDefaultValue(false));
|
||||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("PRODUZIONE")
|
.setSection("PRODUZIONE")
|
||||||
|
|||||||
@ -48,7 +48,7 @@ public class UpdatesManager {
|
|||||||
|
|
||||||
private void installAPK(String downloadURL) {
|
private void installAPK(String downloadURL) {
|
||||||
|
|
||||||
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
|
File destination = mContext.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
|
||||||
|
|
||||||
var progressDialogBuilder = new DialogProgressView("Download", null, false);
|
var progressDialogBuilder = new DialogProgressView("Download", null, false);
|
||||||
progressDialogBuilder.show(mContext.getSupportFragmentManager(), "tag");
|
progressDialogBuilder.show(mContext.getSupportFragmentManager(), "tag");
|
||||||
@ -74,10 +74,10 @@ public class UpdatesManager {
|
|||||||
intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
|
intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
|
||||||
fileLoc = GenericFileProvider.getUriForFile(mContext,
|
fileLoc = GenericFileProvider.getUriForFile(mContext,
|
||||||
mContext.getApplicationContext().getPackageName() + ".core.update.GenericFileProvider",
|
mContext.getApplicationContext().getPackageName() + ".core.update.GenericFileProvider",
|
||||||
new File(destPath));
|
destPath);
|
||||||
} else {
|
} else {
|
||||||
intent = new Intent(Intent.ACTION_VIEW);
|
intent = new Intent(Intent.ACTION_VIEW);
|
||||||
fileLoc = Uri.fromFile(new File(destPath));
|
fileLoc = Uri.fromFile(destPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
intent.setDataAndType(fileLoc, "application/vnd.android.package-archive");
|
intent.setDataAndType(fileLoc, "application/vnd.android.package-archive");
|
||||||
|
|||||||
@ -15,23 +15,20 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|||||||
public class FileDownloader {
|
public class FileDownloader {
|
||||||
|
|
||||||
private String urlString;
|
private String urlString;
|
||||||
private String destFolder;
|
private File destFolder;
|
||||||
|
|
||||||
private RunnableArgs<Integer> onProgressUpdate;
|
private RunnableArgs<Integer> onProgressUpdate;
|
||||||
private RunnableArgs<String> onDownloadCompleted;
|
private RunnableArgs<File> onDownloadCompleted;
|
||||||
|
|
||||||
|
|
||||||
public void download() throws Exception {
|
public void download() throws Exception {
|
||||||
InputStream input = null;
|
InputStream input = null;
|
||||||
OutputStream output = null;
|
OutputStream output = null;
|
||||||
HttpURLConnection connection = null;
|
HttpURLConnection connection = null;
|
||||||
String destPathFile;
|
File downloadFile = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
File direct = new File(destFolder);
|
if (!destFolder.exists()) destFolder.mkdirs();
|
||||||
if (!direct.exists()) {
|
|
||||||
direct.mkdirs();
|
|
||||||
}
|
|
||||||
|
|
||||||
URL url = new URL(urlString);
|
URL url = new URL(urlString);
|
||||||
connection = (HttpURLConnection) url.openConnection();
|
connection = (HttpURLConnection) url.openConnection();
|
||||||
@ -46,13 +43,12 @@ public class FileDownloader {
|
|||||||
int downloadedBytes = 0;
|
int downloadedBytes = 0;
|
||||||
|
|
||||||
String title = URLUtil.guessFileName(String.valueOf(url), null, null);
|
String title = URLUtil.guessFileName(String.valueOf(url), null, null);
|
||||||
|
downloadFile = new File(destFolder, title);
|
||||||
|
|
||||||
destPathFile = destFolder + title;
|
if (downloadFile.exists())
|
||||||
|
downloadFile.delete();
|
||||||
|
|
||||||
if (new File(destPathFile).exists())
|
output = new FileOutputStream(downloadFile);
|
||||||
new File(destPathFile).delete();
|
|
||||||
|
|
||||||
output = new FileOutputStream(destPathFile);
|
|
||||||
|
|
||||||
byte[] buf = new byte[1024];
|
byte[] buf = new byte[1024];
|
||||||
int len;
|
int len;
|
||||||
@ -79,7 +75,7 @@ public class FileDownloader {
|
|||||||
connection.disconnect();
|
connection.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (onDownloadCompleted != null) onDownloadCompleted.run(destPathFile);
|
if (onDownloadCompleted != null) onDownloadCompleted.run(downloadFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -92,11 +88,11 @@ public class FileDownloader {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDestFolder() {
|
public File getDestFolder() {
|
||||||
return destFolder;
|
return destFolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FileDownloader setDestFolder(String destFolder) {
|
public FileDownloader setDestFolder(File destFolder) {
|
||||||
this.destFolder = destFolder;
|
this.destFolder = destFolder;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -106,7 +102,7 @@ public class FileDownloader {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FileDownloader setOnDownloadCompleted(RunnableArgs<String> onDownloadCompleted) {
|
public FileDownloader setOnDownloadCompleted(RunnableArgs<File> onDownloadCompleted) {
|
||||||
this.onDownloadCompleted = onDownloadCompleted;
|
this.onDownloadCompleted = onDownloadCompleted;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,7 +101,9 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd
|
|||||||
public void onBindItemViewHolder(final AccettazioneBollaPickingListAdapter.SingleItemViewHolder holder, final int position) {
|
public void onBindItemViewHolder(final AccettazioneBollaPickingListAdapter.SingleItemViewHolder holder, final int position) {
|
||||||
AccettazioneBollaPickingListModel pickingObjectDTO = this.mDataset.get(position);
|
AccettazioneBollaPickingListModel pickingObjectDTO = this.mDataset.get(position);
|
||||||
|
|
||||||
if (pickingObjectDTO.getQtaEvasa().subtract(pickingObjectDTO.getQtaTot()).floatValue() >= 0) {
|
if (pickingObjectDTO.getQtaEvasa().subtract(pickingObjectDTO.getQtaTot()).floatValue() > 0) {
|
||||||
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.blue_100));
|
||||||
|
} else if (pickingObjectDTO.getQtaEvasa().subtract(pickingObjectDTO.getQtaTot()).floatValue() == 0) {
|
||||||
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
||||||
} else if (pickingObjectDTO.getQtaEvasa().floatValue() > 0) {
|
} else if (pickingObjectDTO.getQtaEvasa().floatValue() > 0) {
|
||||||
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.articoli_in_giacenza;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ArticoliInGiacenzaComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
ArticoliInGiacenzaComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(ArticoliInGiacenzaFragment ControlloGiacenzeFragment);
|
||||||
|
}
|
||||||
@ -0,0 +1,139 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.articoli_in_giacenza;
|
||||||
|
|
||||||
|
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.databinding.ObservableArrayList;
|
||||||
|
|
||||||
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
|
import com.ravikoradiya.liveadapter.Type;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentArticoliInGiacenzaBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.ListaGiacenzePerPosizioneModelBinding;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
|
||||||
|
|
||||||
|
public class ArticoliInGiacenzaFragment extends BaseFragment implements ITitledFragment, ArticoliInGiacenzaViewModel.Listener {
|
||||||
|
@Inject
|
||||||
|
ArticoliInGiacenzaViewModel mViewModel;
|
||||||
|
private FragmentArticoliInGiacenzaBinding mBindings;
|
||||||
|
private final ObservableArrayList<MvwSitArtUdcDetInventario> mItemsInventario = new ObservableArrayList<>();
|
||||||
|
|
||||||
|
public ArticoliInGiacenzaFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArticoliInGiacenzaFragment newInstance() {
|
||||||
|
return new ArticoliInGiacenzaFragment();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setRetainInstance(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_articoli_in_giacenza, container, false);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.controlloGiacenzeComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
mBindings.setView(this);
|
||||||
|
mBindings.setViewmodel(mViewModel);
|
||||||
|
|
||||||
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
return mBindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
mViewModel.getMvwSitArtUdcDetInventario().observe(getViewLifecycleOwner(), data -> {
|
||||||
|
mBindings.emptyView.setVisibility(data == null || data.isEmpty() ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
|
this.refreshList(null);
|
||||||
|
});
|
||||||
|
|
||||||
|
var itemType = new Type<MvwSitArtUdcDetInventario, ListaGiacenzePerPosizioneModelBinding>(R.layout.lista_giacenze_per_posizione_model, BR.item);
|
||||||
|
|
||||||
|
new LiveAdapter(mItemsInventario)
|
||||||
|
.map(MvwSitArtUdcDetInventario.class, itemType)
|
||||||
|
.into(this.mBindings.inventarioList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refreshList(List<MvwSitArtUdcDetInventario> filteredList) {
|
||||||
|
List<MvwSitArtUdcDetInventario> tmpList;
|
||||||
|
|
||||||
|
if (filteredList != null) {
|
||||||
|
tmpList = filteredList;
|
||||||
|
} else {
|
||||||
|
tmpList = mViewModel.getMvwSitArtUdcDetInventario().getValue();
|
||||||
|
}
|
||||||
|
this.mItemsInventario.clear();
|
||||||
|
if (tmpList != null) {
|
||||||
|
this.mItemsInventario.addAll(tmpList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void choosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
|
||||||
|
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
|
||||||
|
|
||||||
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
|
popMe();
|
||||||
|
} else {
|
||||||
|
onComplete.run(mtbDepoPosizione);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::onError)
|
||||||
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
|
titleText.setText(context.getText(R.string.articoli_in_giacenza_title).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
mViewModel.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
mViewModel.setListener(null);
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestChoosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
|
||||||
|
choosePosition(onComplete);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.articoli_in_giacenza;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
||||||
|
|
||||||
|
@Module(subcomponents = ArticoliInGiacenzaComponent.class)
|
||||||
|
public class ArticoliInGiacenzaModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
ArticoliInGiacenzaViewModel providesControlloGiacenzeViewModel(InventarioService inventarioService) {
|
||||||
|
return new ArticoliInGiacenzaViewModel(inventarioService);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.articoli_in_giacenza;
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||||
|
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||||
|
|
||||||
|
public class ArticoliInGiacenzaViewModel {
|
||||||
|
private final InventarioService mInventarioService;
|
||||||
|
private final MutableLiveData<List<MvwSitArtUdcDetInventario>> mvwSitArtUdcDetInventario = new MutableLiveData<>();
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
|
public ArticoliInGiacenzaViewModel(InventarioService inventarioService){
|
||||||
|
this.mInventarioService = inventarioService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
this.sendRequestChoosePosition(this::setPosizione);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setPosizione(MtbDepoPosizione posizione){
|
||||||
|
if (posizione == null) {
|
||||||
|
//Nessuna posizione trovata con questo barcode
|
||||||
|
this.sendError(new ScannedPositionNotExistException());
|
||||||
|
}else{
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
mInventarioService.getInventarioDaPosizione(posizione, inventario -> {
|
||||||
|
mvwSitArtUdcDetInventario.postValue(inventario);
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public MutableLiveData<List<MvwSitArtUdcDetInventario>> getMvwSitArtUdcDetInventario() {
|
||||||
|
return mvwSitArtUdcDetInventario;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListener(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendRequestChoosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onRequestChoosePosition(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILoadingListener {
|
||||||
|
void onError(Exception ex);
|
||||||
|
void onRequestChoosePosition(RunnableArgs<MtbDepoPosizione> onComplete);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="48dp"
|
||||||
|
android:height="48dp"
|
||||||
|
android:viewportWidth="48"
|
||||||
|
android:viewportHeight="48">
|
||||||
|
<path
|
||||||
|
android:pathData="M38,42H10c-2.2,0 -4,-1.8 -4,-4V10c0,-2.2 1.8,-4 4,-4h28c2.2,0 4,1.8 4,4v28C42,40.2 40.2,42 38,42z"
|
||||||
|
android:fillColor="#FF9800"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M29.5,16h-11c-0.8,0 -1.5,-0.7 -1.5,-1.5l0,0c0,-0.8 0.7,-1.5 1.5,-1.5h11c0.8,0 1.5,0.7 1.5,1.5l0,0C31,15.3 30.3,16 29.5,16z"
|
||||||
|
android:fillColor="#8A5100"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M40.2,41.6l1.4,-1.4l6,6l-1.4,1.4L40.2,41.6z"
|
||||||
|
android:fillColor="#616161"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M35.7,27.6c-4.4,0 -8,3.6 -8,8s3.6,8 8,8s8,-3.6 8,-8S40.1,27.6 35.7,27.6z"
|
||||||
|
android:fillColor="#616161"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M41.9,43.3l1.4,-1.4l4.3,4.3l-1.4,1.4L41.9,43.3z"
|
||||||
|
android:fillColor="#37474F"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M35.7,29.1c-3.6,0 -6.5,2.9 -6.5,6.5s2.9,6.5 6.5,6.5s6.5,-2.9 6.5,-6.5S39.2,29.1 35.7,29.1z"
|
||||||
|
android:fillColor="#64B5F6"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M39.1,32.7c-0.8,-1 -2.1,-1.6 -3.4,-1.6c-1.3,0 -2.6,0.6 -3.4,1.6c-0.2,0.2 -0.1,0.5 0,0.7c0.2,0.2 0.5,0.1 0.7,0c0.7,-0.8 1.6,-1.2 2.7,-1.2s2,0.4 2.7,1.2c0.1,0.1 0.2,0.2 0.4,0.2c0.1,0 0.2,0 0.3,-0.1C39.2,33.3 39.2,32.9 39.1,32.7z"
|
||||||
|
android:fillColor="#BBDEFB"/>
|
||||||
|
</vector>
|
||||||
27
app/src/main/res/drawable/resource_package.xml
Normal file
27
app/src/main/res/drawable/resource_package.xml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="48dp"
|
||||||
|
android:height="48dp"
|
||||||
|
android:viewportWidth="48"
|
||||||
|
android:viewportHeight="48">
|
||||||
|
<path
|
||||||
|
android:pathData="M38,42H10c-2.2,0 -4,-1.8 -4,-4V10c0,-2.2 1.8,-4 4,-4h28c2.2,0 4,1.8 4,4v28C42,40.2 40.2,42 38,42z"
|
||||||
|
android:fillColor="#FF9800"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M29.5,16h-11c-0.8,0 -1.5,-0.7 -1.5,-1.5l0,0c0,-0.8 0.7,-1.5 1.5,-1.5h11c0.8,0 1.5,0.7 1.5,1.5l0,0C31,15.3 30.3,16 29.5,16z"
|
||||||
|
android:fillColor="#8A5100"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M40.2,41.6l1.4,-1.4l6,6l-1.4,1.4L40.2,41.6z"
|
||||||
|
android:fillColor="#616161"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M35.7,27.6c-4.4,0 -8,3.6 -8,8s3.6,8 8,8s8,-3.6 8,-8S40.1,27.6 35.7,27.6z"
|
||||||
|
android:fillColor="#616161"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M41.9,43.3l1.4,-1.4l4.3,4.3l-1.4,1.4L41.9,43.3z"
|
||||||
|
android:fillColor="#37474F"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M35.7,29.1c-3.6,0 -6.5,2.9 -6.5,6.5s2.9,6.5 6.5,6.5s6.5,-2.9 6.5,-6.5S39.2,29.1 35.7,29.1z"
|
||||||
|
android:fillColor="#64B5F6"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M39.1,32.7c-0.8,-1 -2.1,-1.6 -3.4,-1.6c-1.3,0 -2.6,0.6 -3.4,1.6c-0.2,0.2 -0.1,0.5 0,0.7c0.2,0.2 0.5,0.1 0.7,0c0.7,-0.8 1.6,-1.2 2.7,-1.2s2,0.4 2.7,1.2c0.1,0.1 0.2,0.2 0.4,0.2c0.1,0 0.2,0 0.3,-0.1C39.2,33.3 39.2,32.9 39.1,32.7z"
|
||||||
|
android:fillColor="#BBDEFB"/>
|
||||||
|
</vector>
|
||||||
94
app/src/main/res/layout/fragment_articoli_in_giacenza.xml
Normal file
94
app/src/main/res/layout/fragment_articoli_in_giacenza.xml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?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="android.view.View" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="view"
|
||||||
|
type="it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaFragment" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="viewmodel"
|
||||||
|
type="it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaViewModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
tools:context=".gest.articoli_in_giacenza.ArticoliInGiacenzaFragment">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.2" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
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:adjustViewBounds="true"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="@string/no_inventory_available_text" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/inventario_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:fadeScrollbars="true"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
</layout>
|
||||||
313
app/src/main/res/layout/lista_giacenze_per_posizione_model.xml
Normal file
313
app/src/main/res/layout/lista_giacenze_per_posizione_model.xml
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
<?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="android.view.View" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate.COMMONS_DATE_FORMATS" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="item"
|
||||||
|
type="it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="8dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/linearLayout"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/qta_textview"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/first_line"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/cod_mart"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{item.codMart}"
|
||||||
|
android:textColor="@color/colorPrimary"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="COD MART" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@color/orange_600"
|
||||||
|
android:paddingStart="6dp"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(item.numCnf) + ` CONF`}"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (item.mtbAart != null && !item.mtbAart.flagQtaCnfFissaBoolean) ? View.VISIBLE : View.GONE}"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="PESO KG" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/second_line"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:text="@{item.getDescrizioneEstesa()}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="16sp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/first_line"
|
||||||
|
tools:text="Descrizione lunga articolo" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{`Lotto: ` + item.getPartitaMag()}"
|
||||||
|
android:visibility="@{UtilityString.isNullOrEmpty(item.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/second_line"
|
||||||
|
tools:text="Lotto: ABCDE" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/qta_textview"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@color/colorPrimary"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingLeft="6dp"
|
||||||
|
android:paddingTop="2dp"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:paddingBottom="2dp"
|
||||||
|
android:text="@{item.getQtaText()}"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/ul_ref_container"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="280.45\nCONF" />
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/ul_ref_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:visibility="@{item.numCollo != null ? View.VISIBLE : View.GONE}"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/linearLayout">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@color/green_600"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="2dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@android:color/white"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="0dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:paddingEnd="4dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/image"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginStart="9dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:src="@drawable/ic_box"
|
||||||
|
android:tint="@color/green_600" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="2dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/green_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:weightSum="2">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Num: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{item.numCollo.toString()}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="5230" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Gest: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{item.gestione}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="V" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Data: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{UtilityDate.formatDate(item.dataCollo, "dd MMM yy")}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="02 mar 2020" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Serie: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{item.serCollo}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="UL" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -26,6 +26,7 @@
|
|||||||
<string name="inventario_fragment_title">Inventario</string>
|
<string name="inventario_fragment_title">Inventario</string>
|
||||||
<string name="prod_fabbisogno_linee_prod_title">Approvvig. linee prod.</string>
|
<string name="prod_fabbisogno_linee_prod_title">Approvvig. linee prod.</string>
|
||||||
<string name="prod_riposizionamento_da_prod_title">Riposizionamento da prod.</string>
|
<string name="prod_riposizionamento_da_prod_title">Riposizionamento da prod.</string>
|
||||||
|
<string name="articoli_in_giacenza_title">Articoli in giacenza</string>
|
||||||
<string name="versamento_merce_fragment_title">Posizionamento merce</string>
|
<string name="versamento_merce_fragment_title">Posizionamento merce</string>
|
||||||
<string name="error">Errore</string>
|
<string name="error">Errore</string>
|
||||||
<string name="ops">Ops</string>
|
<string name="ops">Ops</string>
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
<item name="nav_rettifica_giacenze" type="id" />
|
<item name="nav_rettifica_giacenze" type="id" />
|
||||||
<item name="nav_rettifica_spedizione" type="id" />
|
<item name="nav_rettifica_spedizione" type="id" />
|
||||||
<item name="nav_inventario" type="id" />
|
<item name="nav_inventario" type="id" />
|
||||||
|
<item name="nav_articoli_in_giacenza" type="id" />
|
||||||
<item name="nav_versamento_merce" type="id" />
|
<item name="nav_versamento_merce" type="id" />
|
||||||
<item name="nav_free_picking" type="id" />
|
<item name="nav_free_picking" type="id" />
|
||||||
<item name="nav_free_lav_picking" type="id" />
|
<item name="nav_free_lav_picking" type="id" />
|
||||||
|
|||||||
@ -73,7 +73,8 @@
|
|||||||
<string name="rettifica_spedizione_fragment_title">Inventory</string>
|
<string name="rettifica_spedizione_fragment_title">Inventory</string>
|
||||||
<string name="inventario_fragment_title">Inventory</string>
|
<string name="inventario_fragment_title">Inventory</string>
|
||||||
<string name="prod_fabbisogno_linee_prod_title">Production line requirements</string>
|
<string name="prod_fabbisogno_linee_prod_title">Production line requirements</string>
|
||||||
<string name="prod_riposizionamento_da_prod_title">Riposizionamento da prod.</string>
|
<string name="prod_riposizionamento_da_prod_title">Repositioning from production</string>
|
||||||
|
<string name="articoli_in_giacenza_title">Items in stock</string>
|
||||||
<string name="versamento_merce_fragment_title">Items placement</string>
|
<string name="versamento_merce_fragment_title">Items placement</string>
|
||||||
<string name="free_picking_title_fragment">Free picking</string>
|
<string name="free_picking_title_fragment">Free picking</string>
|
||||||
<string name="error">Error</string>
|
<string name="error">Error</string>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user