Aggiornata gestione Rientro Merce per supportare la nuova logica dei colli

This commit is contained in:
2025-06-10 12:22:23 +02:00
parent 6e02aec5e0
commit 04071f3bad
29 changed files with 546 additions and 501 deletions

View File

@@ -4,10 +4,10 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2025-05-14T09:45:15.341614500Z">
<DropdownSelection timestamp="2025-06-10T08:33:51.753564600Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=23324B682F" />
<DeviceId pluginId="PhysicalDevice" identifier="serial=21088B8EFD" />
</handle>
</Target>
</DropdownSelection>

View File

@@ -11,6 +11,7 @@ import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.annotation.ColorRes;
import androidx.appcompat.widget.AppCompatCheckBox;
@@ -38,6 +39,8 @@ import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
@@ -471,6 +474,7 @@ public class Converters {
}
}
@BindingAdapter(value = {"binding", "parentView", "warningOnOldDates"}, requireAll = false)
public static void bindTextInputEditTextDate(TextInputEditText view, final ObservableField<Date> observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) {
Pair<ObservableField<Date>, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
@@ -1154,4 +1158,52 @@ public class Converters {
view.setLayoutParams(layoutParams);
}
/**
* BindingAdapter per bindare una LocalDate diretta su una TextView con un formato specificato.
* Esempio di utilizzo in XML:
* app:localDateText="@{myLocalDate}" app:dateFormat="@{@string/my_date_format}"
*/
@BindingAdapter(value = {"localDateText", "dateFormat"}, requireAll = false)
public static void bindLocalDateText(TextView view, LocalDate date, String dateFormat) {
if (date == null) {
view.setText("");
return;
}
String pattern = dateFormat != null ? dateFormat : "dd/MM/yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
view.setText(date.format(formatter));
}
@BindingAdapter(value = {"localDateTimeText", "dateFormat"}, requireAll = false)
public static void bindLocalDateText(TextView view, LocalDateTime date, String dateFormat) {
if (date == null) {
view.setText("");
return;
}
String pattern = dateFormat != null ? dateFormat : "dd/MM/yyyy hh:mm";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
view.setText(date.format(formatter));
}
/**
* BindingAdapter per bindare una ObservableField<LocalDate> su una TextView con un formato specificato.
* Esempio di utilizzo in XML:
* app:localDateObservableText="@{myObservableLocalDate}" app:dateFormat="@{@string/my_date_format}"
*/
@BindingAdapter(value = {"localDateObservableText", "dateFormat"}, requireAll = false)
public static void bindObservableLocalDateText(TextView view, ObservableField<LocalDate> observableDate, String dateFormat) {
if (observableDate == null) {
view.setText("");
return;
}
LocalDate date = observableDate.get();
if (date == null) {
view.setText("");
return;
}
String pattern = dateFormat != null ? dateFormat : "dd/MM/yyyy";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
view.setText(date.format(formatter));
}
}

View File

@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.model;
import com.google.gson.annotations.SerializedName;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Objects;
@@ -59,7 +60,7 @@ public class MtbColr extends EntityBase {
@SerializedName("numColloRif")
private Integer numColloRif;
@SerializedName("datetimeRow")
private String datetimeRow;
private LocalDateTime datetimeRow;
@SerializedName("codJcom")
private String codJcom;
@SerializedName("numCnf")
@@ -430,26 +431,15 @@ public class MtbColr extends EntityBase {
return this;
}
public String getDatetimeRowS() {
public LocalDateTime getDatetimeRow() {
return datetimeRow;
}
public Date getDatetimeRowD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDatetimeRowS());
}
public MtbColr setDatetimeRow(String datetimeRow) {
public MtbColr setDatetimeRow(LocalDateTime datetimeRow) {
this.datetimeRow = datetimeRow;
return this;
}
public MtbColr setDatetimeRow(Date datetimeRow) {
this.datetimeRow = UtilityDate.formatDate(datetimeRow, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
public String getCodJcom() {
return codJcom;
}
@@ -651,9 +641,6 @@ public class MtbColr extends EntityBase {
return dataColloRif;
}
public String getDatetimeRow() {
return datetimeRow;
}
public String getBarcodeUlIn() {
return barcodeUlIn;

View File

@@ -2,7 +2,7 @@ package it.integry.integrywmsnative.core.model.key;
import java.time.LocalDate;
public class MtbColrKey extends MtbColtKey{
public class MtbColrKey extends MtbColtKey {
private final int riga;

View File

@@ -677,30 +677,24 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
});
}
public void loadShipmentUlFromProductionUL(MtbColt mtbColt, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
public MtbColr makeSynchronousRetrieveShipmentUlFromProductionUlRequest(String barcodeUl) throws Exception {
HashMap<String, Object> params = new HashMap<>();
params.put("mtb_colr.gestione_rif", mtbColt.getGestione());
params.put("mtb_colr.ser_collo_rif", mtbColt.getSerCollo());
params.put("mtb_colr.num_collo_rif", mtbColt.getNumCollo());
params.put("mtb_colr.data_collo_rif", mtbColt.getDataColloD());
params.put("barcode_ul_out", barcodeUl);
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
String query = "select distinct mtb_colt.*\n" +
"from mtb_colt\n" +
" left join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and mtb_colt.data_collo = mtb_colr.data_collo and\n" +
" mtb_colt.ser_collo = mtb_colr.ser_collo and mtb_colt.num_collo = mtb_colr.num_collo\n" +
"where mtb_colt.gestione = 'V'" +
String query = "select distinct TOP 1 *\n" +
"from mtb_colr\n" +
"where gestione = 'V'" +
" AND " + whereCond;
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColr>>() {
}.getType();
this.mSystemRESTConsumer.<ArrayList<MtbColt>>processSql(query, typeOfObjectsList, data -> {
onComplete.run(data.get(0));
}, onFailed);
var data = this.mSystemRESTConsumer.<ArrayList<MtbColr>>processSqlSynchronized(query, typeOfObjectsList);
return data != null && !data.isEmpty() ? data.get(0) : null;
}

View File

@@ -87,7 +87,7 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
});
}
public void printReportType(ReportType reportType, String codMdep, String codAnag, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
public void makeSynchronousPrintReportTypeRequest(ReportType reportType, String codMdep, String codAnag, HashMap<String, Object> params) throws Exception {
ReportTypeDTO reportTypeDTO = new ReportTypeDTO();
reportTypeDTO.setReportType(reportType);
@@ -98,29 +98,11 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
.forEach(x -> reportTypeDTO.getParams().add(new JasperPairDTO(x.getKey(), x.getValue())));
PrinterRESTConsumerService printerService = restBuilder.getService(PrinterRESTConsumerService.class);
printerService
var response = printerService
.printReportType(reportTypeDTO)
.enqueue(new ManagedErrorCallback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "printReportType", data -> {
onComplete.run();
}, onFailed);
}
.execute();
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, @NonNull final Exception e) {
onFailed.run(e);
}
});
}
public void printReportType(ReportType reportType, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
printReportType(reportType, null, null, params, onComplete, onFailed);
}
public void printReportType(ReportType reportType, String codMdep, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
printReportType(reportType, codMdep, null, params, onComplete, onFailed);
analyzeAnswer(response, "printReportType");
}
public void printClosedOrdersSynchronized(PrintOrderCloseDTO dto, String codMdep) throws Exception {

View File

@@ -1,16 +1,9 @@
package it.integry.integrywmsnative.core.rest.consumers;
import androidx.annotation.NonNull;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.handler.ManagedErrorCallback;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.produzione.CaricoProdFinDTO;
import retrofit2.Call;
import retrofit2.Response;
@Singleton
public class ProduzioneRESTConsumer extends _BaseRESTConsumer {
@@ -22,23 +15,14 @@ public class ProduzioneRESTConsumer extends _BaseRESTConsumer {
}
public void caricoProdFin(CaricoProdFinDTO caricoProdFin, Runnable onComplete, RunnableArgs<Exception> onFailed) {
public void makeSynchronousCaricoProdFin(CaricoProdFinDTO caricoProdFin) throws Exception {
ProduzioneRESTConsumerService service = restBuilder.getService(ProduzioneRESTConsumerService.class);
service.caricoProdFin(caricoProdFin)
.enqueue(new ManagedErrorCallback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Void>> call, Response<ServiceRESTResponse<Void>> response) {
analyzeAnswer(response, "caricoProdFin", Void -> onComplete.run(), ex -> {
if (onFailed != null) onFailed.run(ex);
});
}
var response = service.caricoProdFin(caricoProdFin)
.execute();
analyzeAnswer(response, "caricoProdFin");
@Override
public void onFailure(Call<ServiceRESTResponse<Void>> call, @NonNull final Exception e) {
onFailed.run(e);
}
});
}
}

View File

@@ -91,34 +91,40 @@ public abstract class _BaseRESTConsumer {
}
public static <T> void analyzeAnswerList(Response<ServiceRESTResponse<T>> response, String logTitle, RunnableArgs<List<T>> onComplete, RunnableArgs<Exception> onFailed) {
try {
var dataList = analyzeAnswerList(response, logTitle);
onComplete.run(dataList);
} catch (Exception e) {
onFailed.run(e);
}
}
public static <T> List<T> analyzeAnswerList(Response<ServiceRESTResponse<T>> response, String logTitle) throws Exception {
if (response.isSuccessful()) {
if (response.body() != null) {
if (response.body().getEsito() == EsitoType.OK) {
if (!UtilityString.isNullOrEmpty(response.body().getErrorMessage())) {
onFailed.run(new Exception(response.body().getErrorMessage()));
throw new Exception(response.body().getErrorMessage());
} else {
List<T> dataObj = response.body().getEntityList();
onComplete.run(dataObj);
return response.body().getEntityList();
}
} else {
Log.e(logTitle, response.body().getErrorMessage());
onFailed.run(CommonRESTException.tryRecognizeException(response.body().getErrorMessage()));
throw CommonRESTException.tryRecognizeException(response.body().getErrorMessage());
}
} else {
Log.e(logTitle, response.message());
onFailed.run(new Exception(response.message()));
throw new Exception(response.message());
}
} else {
if (response.code() == 404) {
Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata");
onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")"));
throw new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")");
} else if (response.code() == 550)
onFailed.run(new InvalidLicenseException());
throw new InvalidLicenseException();
else {
Log.e(logTitle, "Status " + response.code() + ": " + response.message());
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
throw new Exception("Status " + response.code() + ": " + response.message());
}
}
}

View File

@@ -618,7 +618,7 @@ public class PickingLiberoViewModel {
.setQtaCol(pickedQuantityDTO.getQtaTot())
.setQtaCnf(pickedQuantityDTO.getQtaCnf())
.setNumCnf(pickedQuantityDTO.getNumCnf())
.setDatetimeRow(UtilityDate.getDateInstance())
.setDatetimeRow(UtilityDate.getNowTime())
.setMtbAart(pickingObjectDTO.getMtbAart());
return mtbColr;

View File

@@ -540,7 +540,7 @@ public class PickingResiViewModel {
.setQtaCnf(qtaCnf)
.setNumCnf(numCnf)
.setDescrizione(withdrawableDtbDocr.getMtbAart().getDescrizioneEstesa())
.setDatetimeRow(UtilityDate.getDateInstance())
.setDatetimeRow(UtilityDate.getNowTime())
.setCodAnagDoc(withdrawableDtbDocr.getCodAnag())
.setCodDtipDoc(withdrawableDtbDocr.getCodDtip())

View File

@@ -89,8 +89,8 @@ public class ProdRientroMerceFragment extends BaseFragment implements
mProdRientroMerceOrderDetailFragment.setOrder(order);
})
.setOnRefreshListener(this);
mProdRientroMerceOrderDetailFragment.setOnMtbColtClicked(item -> {
new BottomSheetMtbColrEditModalView(item.getMtbColr().get(0))
mProdRientroMerceOrderDetailFragment.setOnMtbColrClicked(item -> {
new BottomSheetMtbColrEditModalView(item)
.setListener(this)
.show(getParentFragmentManager(), "BottomSheetMtbColrEditModal");
});
@@ -196,7 +196,7 @@ public class ProdRientroMerceFragment extends BaseFragment implements
@Override
public void onMtbColrEdit(MtbColr mtbColr) {
mProdRientroMerceOrderDetailFragment.editMtbColr(mtbColr);
}
@Override

View File

@@ -10,7 +10,6 @@ import android.view.ViewGroup;
import android.widget.Toast;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableField;
import androidx.fragment.app.Fragment;
@@ -71,7 +70,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
private FragmentProdRientroMerceOrderDetailBinding mBindings;
private ProdRientroMerceOrderDetailMtbColtListAdapter mAdapter;
private RunnableArgs<MtbColt> onMtbColtClicked;
private RunnableArgs<MtbColr> onMtbColrClicked;
private BluetoothManager bluetoothManager;
private BluetoothSerialDevice mConnectedBluetoothDevice;
@@ -103,8 +102,8 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mBindings = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_prod_rientro_merce_order_detail, container, false);
mBindings.setLifecycleOwner(this);
mBindings = FragmentProdRientroMerceOrderDetailBinding.inflate(LayoutInflater.from(getActivity()), container, false);
mBindings.setLifecycleOwner(getViewLifecycleOwner());
mBindings.setView(this);
@@ -118,7 +117,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
if (currentOrder.getValue() != null) {
refreshOrder();
}
this.mViewModel.mtbColtsOfOrder.observe(getViewLifecycleOwner(), this::refreshList);
this.mViewModel.mtbColrsOfOrder.observe(getViewLifecycleOwner(), this::refreshList);
this.initRecyclerView();
this.initULScaleBluetoothConnection();
@@ -141,7 +140,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
mBindings.mainList.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(item -> {
if (this.onMtbColtClicked != null) this.onMtbColtClicked.run(item);
if (this.onMtbColrClicked != null) this.onMtbColrClicked.run(item);
});
}
@@ -207,35 +206,43 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
if (mBindings != null) mBindings.invalidateAll();
if (mAdapter != null) mAdapter.clearDataset();
if (mViewModel != null) mViewModel.setOrder(currentOrd);
executorService.execute(() -> {
try {
if (mViewModel != null) mViewModel.setOrder(currentOrd);
} catch (Exception e) {
this.onError(e);
}
});
}
private void refreshList(List<MtbColt> mtbColts) {
if (mtbColts != null) {
sumLUNumber.set(new BigDecimal(mtbColts.size()));
private void refreshList(List<MtbColr> mtbColrs) {
if (mtbColrs != null) {
sumLUNumber.set(new BigDecimal(mtbColrs.size()));
AtomicBigDecimal sumColli = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumNet = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumGross = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumQtaCol = new AtomicBigDecimal(BigDecimal.ZERO);
mtbColts.stream()
.forEach(x -> x.getMtbColr().stream().forEach(y -> {
mtbColrs.stream()
.forEach(y -> {
sumColli.getAndAdd(y.getNumCnf());
sumNet.getAndAdd(y.getPesoNettoKg());
sumGross.getAndAdd(y.getPesoLordoKg());
sumQtaCol.getAndAdd(y.getQtaCol());
}));
});
ComparatorCompat<MtbColt> c = ComparatorCompat
.chain(
new ComparatorCompat<MtbColt>((x, y) -> x.getDataVersD().compareTo(y.getDataVersD()))
)
.reversed();
MtbColt lastUl = Stream.of(mtbColts).sorted(c).findFirstOrElse(null);
if (lastUl != null && !UtilityString.isNullOrEmpty(lastUl.getCodTcol())) {
mLatestCodTcol = lastUl.getCodTcol();
}
// MtbColt lastUl = Stream.of(mtbColts).sorted(c).findFirstOrElse(null);
// if (lastUl != null && !UtilityString.isNullOrEmpty(lastUl.getCodTcol())) {
// mLatestCodTcol = lastUl.getCodTcol();
// }
currentOrder.getValue().setQtaTrasferite(sumQtaCol.get());
this.progress.set(currentOrder.getValue().getProgress());
@@ -250,7 +257,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
sumNetKG.set(BigDecimal.ZERO);
}
mAdapter.updateDataset(mtbColts);
mAdapter.updateDataset(mtbColrs);
}
@Override
@@ -258,11 +265,18 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
String codJcom = currentOrder.getValue().getCodJcom();
DialogPrintUlSSCCView.newInstance(codJcom, mtbColt, result -> {
if (result.isFlagPrintShipmentLabel() || result.isFlagPrintProductionLabel()) {
this.mViewModel.printSavedMtbColt(result);
} else {
this.mViewModel.refreshMtbColts();
}
executorService.execute(() -> {
try {
if (result.isFlagPrintShipmentLabel() || result.isFlagPrintProductionLabel()) {
this.mViewModel.printSavedMtbColt(result);
}
this.mViewModel.refreshMtbColts();
} catch (Exception e) {
this.onError(e);
}
});
})
.show(requireActivity().getSupportFragmentManager(), "DialogPrintUlSSCC");
@@ -343,8 +357,8 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
});
}
public ProdRientroMerceOrderDetailFragment setOnMtbColtClicked(RunnableArgs<MtbColt> onMtbColtClicked) {
this.onMtbColtClicked = onMtbColtClicked;
public ProdRientroMerceOrderDetailFragment setOnMtbColrClicked(RunnableArgs<MtbColr> onMtbColrClicked) {
this.onMtbColrClicked = onMtbColrClicked;
return this;
}
@@ -353,13 +367,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
}
public void deleteMtbColr(MtbColr mtbColr) {
MtbColt mtbColt = new MtbColt()
.setGestione(mtbColr.getGestione())
.setDataCollo(mtbColr.getDataColloS())
.setSerCollo(mtbColr.getSerCollo())
.setNumCollo(mtbColr.getNumCollo());
this.mViewModel.deleteLU(mtbColt);
this.mViewModel.deleteCarico(mtbColr);
}
public Drawable getOrderStatusIcon() {

View File

@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail;
import java.util.concurrent.ExecutorService;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
@@ -21,13 +23,14 @@ public class ProdRientroMerceOrderDetailModule {
@Provides
ProdRientroMerceOrderDetailViewModel provideProdRientroMerceOrderDetailViewModel(
RESTBuilder restBuilder,
ExecutorService executorService,
ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
PrinterRESTConsumer printerRESTConsumer,
ArticoloRESTConsumer articoloRESTConsumer,
SystemRESTConsumer systemRESTConsumer,
ProduzioneRESTConsumer produzioneRESTConsumer) {
return new ProdRientroMerceOrderDetailViewModel(prodRientroMerceOrderDetailRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, articoloRESTConsumer, systemRESTConsumer, produzioneRESTConsumer);
return new ProdRientroMerceOrderDetailViewModel(executorService, prodRientroMerceOrderDetailRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, articoloRESTConsumer, systemRESTConsumer, produzioneRESTConsumer);
}
}

View File

@@ -9,14 +9,14 @@ import androidx.recyclerview.widget.RecyclerView;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.view.ExtendedRecyclerView;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.databinding.FragmentProdRientroMerceOrderDetailMtbColtItemModelBinding;
public class ProdRientroMerceOrderDetailMtbColtListAdapter extends ExtendedRecyclerView<MtbColt, ProdRientroMerceOrderDetailMtbColtListAdapter.ViewHolder> {
public class ProdRientroMerceOrderDetailMtbColtListAdapter extends ExtendedRecyclerView<MtbColr, ProdRientroMerceOrderDetailMtbColtListAdapter.ViewHolder> {
private OnItemClickListener mOnItemClickListener;
public ProdRientroMerceOrderDetailMtbColtListAdapter(ObservableArrayList<MtbColt> myDataset) {
public ProdRientroMerceOrderDetailMtbColtListAdapter(ObservableArrayList<MtbColr> myDataset) {
super(myDataset);
}
@@ -29,8 +29,8 @@ public class ProdRientroMerceOrderDetailMtbColtListAdapter extends ExtendedRecyc
mViewDataBinding = v;
}
public void bind(MtbColt mtbColt) {
mViewDataBinding.setMtbColt(mtbColt);
public void bind(MtbColr mtbColr) {
mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings();
}
}
@@ -48,8 +48,8 @@ public class ProdRientroMerceOrderDetailMtbColtListAdapter extends ExtendedRecyc
@Override
public void onBindViewHolder(ProdRientroMerceOrderDetailMtbColtListAdapter.ViewHolder holder, int position) {
MtbColt mtbColt = mDataset.get(position);
holder.bind(mtbColt);
MtbColr mtbColr = mDataset.get(position);
holder.bind(mtbColr);
//Setting qty with unt_mis
// if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
@@ -66,7 +66,7 @@ public class ProdRientroMerceOrderDetailMtbColtListAdapter extends ExtendedRecyc
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(holder.mViewDataBinding.getMtbColt());
mOnItemClickListener.onItemClick(holder.mViewDataBinding.getMtbColr());
}
});
@@ -83,7 +83,7 @@ public class ProdRientroMerceOrderDetailMtbColtListAdapter extends ExtendedRecyc
}
public interface OnItemClickListener {
void onItemClick(MtbColt item);
void onItemClick(MtbColr item);
}
}

View File

@@ -10,14 +10,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.ExecutorService;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.DtbOrdSteps;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.report.ReportType;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
@@ -37,9 +38,10 @@ import it.integry.integrywmsnative.view.dialogs.printSsccUl.dto.PrintUlDTO;
public class ProdRientroMerceOrderDetailViewModel {
public final MutableLiveData<List<MtbColt>> mtbColtsOfOrder = new MutableLiveData<>();
public final MutableLiveData<List<MtbColr>> mtbColrsOfOrder = new MutableLiveData<>();
private OrdineLavorazioneDTO currentOrder;
private final ExecutorService executorService;
private final ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer;
private final ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer;
private final PrinterRESTConsumer printerRESTConsumer;
@@ -50,12 +52,14 @@ public class ProdRientroMerceOrderDetailViewModel {
private Listener mListener;
@Inject
public ProdRientroMerceOrderDetailViewModel(ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer,
public ProdRientroMerceOrderDetailViewModel(ExecutorService executorService,
ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
PrinterRESTConsumer printerRESTConsumer,
ArticoloRESTConsumer articoloRESTConsumer,
SystemRESTConsumer systemRESTConsumer,
ProduzioneRESTConsumer produzioneRESTConsumer) {
this.executorService = executorService;
this.prodRientroMerceOrderDetailRESTConsumer = prodRientroMerceOrderDetailRESTConsumer;
this.colliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.printerRESTConsumer = printerRESTConsumer;
@@ -64,27 +68,25 @@ public class ProdRientroMerceOrderDetailViewModel {
this.produzioneRESTConsumer = produzioneRESTConsumer;
}
public void setOrder(OrdineLavorazioneDTO order) {
public void setOrder(OrdineLavorazioneDTO order) throws Exception {
this.currentOrder = order;
refreshMtbColts();
}
public void refreshMtbColts() {
//this.sendOnLoadingStarted();
this.mtbColtsOfOrder.postValue(null);
public void refreshMtbColts() throws Exception {
this.mtbColrsOfOrder.postValue(null);
if (currentOrder != null) {
this.prodRientroMerceOrderDetailRESTConsumer.getMtbColtsOfOrder(currentOrder, mtbColts -> {
for (MtbColt mtbColt : mtbColts) {
mtbColt.getMtbColr().get(0)
.setDescrizione(currentOrder.getDescrizioneProd())
.setUntMis(currentOrder.getUntOrd());
}
var mtbColrs = this.prodRientroMerceOrderDetailRESTConsumer.makeSynchronousRetrieveULOfOrder(currentOrder);
this.mtbColtsOfOrder.postValue(mtbColts);
//this.sendOnLoadingEnded();
}, this::sendError);
for (MtbColr mtbColr : mtbColrs) {
mtbColr
.setDescrizione(currentOrder.getDescrizioneProd())
.setUntMis(currentOrder.getUntOrd());
}
this.mtbColrsOfOrder.postValue(mtbColrs);
}
}
@@ -119,89 +121,100 @@ public class ProdRientroMerceOrderDetailViewModel {
public void createLU(ProdRientroMerceOrderDetailPickedQuantityDTO pickedQuantityDTO) {
this.sendOnLoadingStarted();
ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO =
new ImportColliDaProduzioneRequestDTO()
.setColliBancale(pickedQuantityDTO.getNumCnf().intValue())
.setQtaCnf(pickedQuantityDTO.getQtaCnf())
.setQtaCol(pickedQuantityDTO.getQtaCol())
.setCodJcom(currentOrder.getCodJcom())
.setCodJfas(pickedQuantityDTO.getCodJfas())
.setCodMart(currentOrder.getCodProd())
.setCodTcol(pickedQuantityDTO.getMtbTCol() != null ? pickedQuantityDTO.getMtbTCol().getCodTcol() : null)
.setDataCollo(LocalDate.now())
.setDataOrd(currentOrder.getDataOrd())
.setNumOrd(currentOrder.getNumOrd())
.setGestione(currentOrder.getGestione())
.setPartitaMag(currentOrder.getPartitaMag())
.setFornitore(currentOrder.getRagSocAnag())
.setPesoLordo(pickedQuantityDTO.getPesoLordo())
.setPesoNetto(pickedQuantityDTO.getPesoNetto())
.setAutoGeneraVendita(false);
this.prodRientroMerceOrderDetailRESTConsumer.importColliDaProduzione(importColliDaProduzioneRequestDTO, mtbColtSaved -> {
if (SettingsManager.iDB().isProduzioneGeneraDocCar() || SettingsManager.iDB().isProduzioneGeneraDocScar()) {
CaricoProdFinDTO caricoProdFinDTO = new CaricoProdFinDTO()
.setEscludiArticoliGestitiDaWmsInScarico(true)
.setGestione(currentOrder.getGestione())
.setNumOrd(currentOrder.getNumOrd())
.setDataOrd(currentOrder.getDataOrd())
.setCodJfas(pickedQuantityDTO.getCodJfas())
.setCodAnag(currentOrder.getCodAnag())
.setCodMdep(currentOrder.getCodMdep())
.setPreparatoDa(SettingsManager.i().getUser().getFullname())
.setEffettuaCaricoProdotto(SettingsManager.iDB().isProduzioneGeneraDocCar())
.setCreaCaricoDaCollo(true)
.setCodDtipCar(SettingsManager.iDB().getProduzioneCodDtipCar())
.setEffettuaScaricoMateriali(SettingsManager.iDB().isProduzioneGeneraDocScar())
.setCodDtipScar(SettingsManager.iDB().getProduzioneCodDtipScar());
caricoProdFinDTO.getProdotti().getRow()
.add(new CaricoProdFinProdottoDTO()
.setQtaProdAna(pickedQuantityDTO.getQtaCol()));
executorService.execute(() -> {
try {
produzioneRESTConsumer.caricoProdFin(caricoProdFinDTO, () -> {
ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO =
new ImportColliDaProduzioneRequestDTO()
.setColliBancale(pickedQuantityDTO.getNumCnf().intValue())
.setQtaCnf(pickedQuantityDTO.getQtaCnf())
.setQtaCol(pickedQuantityDTO.getQtaCol())
.setCodJcom(currentOrder.getCodJcom())
.setCodJfas(pickedQuantityDTO.getCodJfas())
.setCodMart(currentOrder.getCodProd())
.setCodTcol(pickedQuantityDTO.getMtbTCol() != null ? pickedQuantityDTO.getMtbTCol().getCodTcol() : null)
.setDataCollo(LocalDate.now())
.setDataOrd(currentOrder.getDataOrd())
.setNumOrd(currentOrder.getNumOrd())
.setGestione(currentOrder.getGestione())
.setPartitaMag(currentOrder.getPartitaMag())
.setFornitore(currentOrder.getRagSocAnag())
.setPesoLordo(pickedQuantityDTO.getPesoLordo())
.setPesoNetto(pickedQuantityDTO.getPesoNetto())
.setAutoGeneraVendita(false);
var mtbColtSaved = this.prodRientroMerceOrderDetailRESTConsumer.makeSynchronousImportColliDaProduzione(importColliDaProduzioneRequestDTO);
if (SettingsManager.iDB().isProduzioneGeneraDocCar() || SettingsManager.iDB().isProduzioneGeneraDocScar()) {
CaricoProdFinDTO caricoProdFinDTO = new CaricoProdFinDTO()
.setEscludiArticoliGestitiDaWmsInScarico(true)
.setGestione(currentOrder.getGestione())
.setNumOrd(currentOrder.getNumOrd())
.setDataOrd(currentOrder.getDataOrd())
.setCodJfas(pickedQuantityDTO.getCodJfas())
.setCodAnag(currentOrder.getCodAnag())
.setCodMdep(currentOrder.getCodMdep())
.setPreparatoDa(SettingsManager.i().getUser().getFullname())
.setEffettuaCaricoProdotto(SettingsManager.iDB().isProduzioneGeneraDocCar())
.setCreaCaricoDaCollo(true)
.setCodDtipCar(SettingsManager.iDB().getProduzioneCodDtipCar())
.setEffettuaScaricoMateriali(SettingsManager.iDB().isProduzioneGeneraDocScar())
.setCodDtipScar(SettingsManager.iDB().getProduzioneCodDtipScar());
caricoProdFinDTO.getProdotti().getRow()
.add(new CaricoProdFinProdottoDTO()
.setQtaProdAna(pickedQuantityDTO.getQtaCol()));
produzioneRESTConsumer.makeSynchronousCaricoProdFin(caricoProdFinDTO);
synchronized (this.mtbColtsOfOrder) {
this.sendOnLoadingEnded();
this.mListener.onDataSaved(mtbColtSaved);
}
}, this::sendError);
} else {
synchronized (this.mtbColtsOfOrder) {
this.sendOnLoadingEnded();
this.mListener.onDataSaved(mtbColtSaved);
}
synchronized (this.mtbColrsOfOrder) {
this.sendOnLoadingEnded();
this.mListener.onDataSaved(mtbColtSaved.get(0));
}
} catch (Exception e) {
this.sendError(e);
}
}, this::sendError);
});
}
public void deleteLU(MtbColt mtbColt) {
this.sendOnLoadingStarted();
public void deleteCarico(MtbColr mtbColtToDelete) {
this.prodRientroMerceOrderDetailRESTConsumer.deleteColloDaProduzione(mtbColt, () -> {
synchronized (this.mtbColtsOfOrder) {
Optional<MtbColt> mtbColtToRemove = Objects.requireNonNull(this.mtbColtsOfOrder.getValue()).stream()
.filter(x -> x.getNumCollo().equals(mtbColt.getNumCollo()) &&
x.getSerCollo().equalsIgnoreCase(mtbColt.getSerCollo()) &&
x.getDataColloD().compareTo(mtbColt.getDataColloD()) == 0 &&
x.getGestione().equalsIgnoreCase(mtbColt.getGestione()))
executorService.execute(() -> {
this.sendOnLoadingStarted();
try {
this.prodRientroMerceOrderDetailRESTConsumer.deleteCaricoDaProduzione(mtbColtToDelete);
} catch (Exception e) {
this.sendError(e);
return;
}
synchronized (this.mtbColrsOfOrder) {
Optional<MtbColr> mtbColtToRemove = Objects.requireNonNull(this.mtbColrsOfOrder.getValue()).stream()
.filter(x -> x.getNumCollo().equals(mtbColtToDelete.getNumCollo()) &&
x.getSerCollo().equalsIgnoreCase(mtbColtToDelete.getSerCollo()) &&
x.getDataColloD().compareTo(mtbColtToDelete.getDataColloD()) == 0 &&
x.getGestione().equalsIgnoreCase(mtbColtToDelete.getGestione()))
.findFirst();
if (mtbColtToRemove.isPresent()) {
this.mtbColtsOfOrder.getValue().remove(mtbColtToRemove.get());
this.mtbColtsOfOrder.postValue(this.mtbColtsOfOrder.getValue());
this.mtbColrsOfOrder.getValue().remove(mtbColtToRemove.get());
this.mtbColrsOfOrder.postValue(this.mtbColrsOfOrder.getValue());
}
}
this.sendOnLoadingEnded();
}, this::sendError);
});
}
public void setListener(Listener listener) {
@@ -221,34 +234,32 @@ public class ProdRientroMerceOrderDetailViewModel {
if (this.mListener != null) mListener.onError(ex);
}
public void printSavedMtbColt(PrintUlDTO result) {
public void printSavedMtbColt(PrintUlDTO result) throws Exception {
if (result.isFlagPrintProductionLabel()) {
this.startPrint(result.getMtbColt(), ReportType.ETICHETTA_SSCC_LAVORAZIONE, currentOrder.getCodAnag());
this.printUl(result.getMtbColt().getMtbColr().get(0), ReportType.ETICHETTA_SSCC_LAVORAZIONE, currentOrder.getCodAnag());
} else {
this.loadShipmentUlFromProductionUL(result.getMtbColt(), mtbColt -> {
this.startPrint(mtbColt, ReportType.ETICHETTA_SSCC_SPEDIZIONE, mtbColt.getCodAnag());
}, this::sendError);
var mtbColr = this.loadShipmentUlFromProductionUL(result.getMtbColt().getMtbColr().get(0));
this.printUl(mtbColr, ReportType.ETICHETTA_SSCC_SPEDIZIONE, result.getMtbColt().getCodAnag());
}
}
private void loadShipmentUlFromProductionUL(MtbColt productionUL, RunnableArgs<MtbColt> onLoad, RunnableArgs<Exception> onError) {
this.colliMagazzinoRESTConsumer.loadShipmentUlFromProductionUL(productionUL, onLoad, onError);
private MtbColr loadShipmentUlFromProductionUL(MtbColr productionUdcRow) throws Exception {
return this.colliMagazzinoRESTConsumer.makeSynchronousRetrieveShipmentUlFromProductionUlRequest(productionUdcRow.getBarcodeUlIn());
}
private void startPrint(MtbColt mtbColt, ReportType reportType, String codAnag) {
HashMap<String, Object> params = new HashMap<>();
params.put("gestione", mtbColt.getGestione());
params.put("ser_collo", mtbColt.getSerCollo());
params.put("num_collo", mtbColt.getNumCollo());
params.put("data_collo", UtilityDate.formatDate(mtbColt.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
this.printerRESTConsumer.printReportType(
private void printUl(MtbColr mtbColr, ReportType reportType, String codAnag) throws Exception {
HashMap<String, Object> params = new HashMap<>() {{
put("gestione", mtbColr.getGestione());
put("ser_collo", mtbColr.getSerCollo());
put("num_collo", mtbColr.getNumCollo());
put("data_collo", UtilityDate.formatDate(mtbColr.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
}};
this.printerRESTConsumer.makeSynchronousPrintReportTypeRequest(
reportType,
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
codAnag,
params,
this::refreshMtbColts,
this::sendError);
params);
}
public interface Listener extends ILoadingListener {

View File

@@ -1,34 +1,24 @@
package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest;
import androidx.annotation.NonNull;
import androidx.databinding.ObservableArrayList;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
import it.integry.integrywmsnative.core.rest.handler.ManagedErrorCallback;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityQuery;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.DeleteCaricoDaProduzioneRequestDTO;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.ImportColliDaProduzioneRequestDTO;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import retrofit2.Call;
import retrofit2.Response;
@Singleton
public class ProdRientroMerceOrderDetailRESTConsumer extends _BaseRESTConsumer {
@@ -43,7 +33,7 @@ public class ProdRientroMerceOrderDetailRESTConsumer extends _BaseRESTConsumer {
}
public void getMtbColtsOfOrder(OrdineLavorazioneDTO ordineLavorazioneDTO, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
public List<MtbColr> makeSynchronousRetrieveULOfOrder(OrdineLavorazioneDTO ordineLavorazioneDTO) throws Exception {
String sql = "SELECT mtb_colr.* " +
" FROM mtb_colr " +
@@ -57,99 +47,39 @@ public class ProdRientroMerceOrderDetailRESTConsumer extends _BaseRESTConsumer {
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColr>>() {
}.getType();
systemRESTConsumer.<List<MtbColr>>processSql(sql, typeOfObjectsList, mtbColrList -> {
if (mtbColrList != null && !mtbColrList.isEmpty()) {
List<HashMap<String, Object>> params = new ArrayList<>();
for (MtbColr mtbcolr :
mtbColrList) {
HashMap<String, Object> parm = new HashMap<>();
parm.put("data_collo", mtbcolr.getDataColloD());
parm.put("gestione", mtbcolr.getGestione());
parm.put("ser_collo", mtbcolr.getSerCollo());
parm.put("num_collo", mtbcolr.getNumCollo());
params.add(parm);
}
String mtbColtSql = "SELECT * FROM mtb_colt WHERE " + UtilityQuery.concatFieldListInWhereCond(params) + "";
Type mtbColtTypeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
}.getType();
systemRESTConsumer.<List<MtbColt>>processSql(mtbColtSql, mtbColtTypeOfObjectsList, mtbColtList -> {
if (mtbColtList == null) mtbColtList = new ArrayList<>();
for (MtbColt mtbColt : mtbColtList) {
ObservableArrayList<MtbColr> mtbColrsRoAdd = new ObservableArrayList<>();
mtbColrsRoAdd.addAll(Stream.of(mtbColrList)
.filter(x -> x.getNumCollo().equals(mtbColt.getNumCollo()) &&
x.getDataColloD().compareTo(mtbColt.getDataColloD()) == 0 &&
x.getGestione().equals(mtbColt.getGestione()) &&
x.getSerCollo().equals(mtbColt.getSerCollo()))
.toList());
mtbColt.setMtbColr(mtbColrsRoAdd);
}
onComplete.run(mtbColtList);
}, onFailed);
} else {
onComplete.run(new ArrayList<>());
}
}, onFailed);
var mtbColrList = systemRESTConsumer.<List<MtbColr>>processSqlSynchronized(sql, typeOfObjectsList);
return mtbColrList;
}
public void importColliDaProduzione(ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
public List<MtbColt> makeSynchronousImportColliDaProduzione(ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO) throws Exception {
ProdRientroMerceOrderDetailRESTConsumerService service = restBuilder.getService(ProdRientroMerceOrderDetailRESTConsumerService.class);
service.importColliDaProduzione(Collections.singletonList(importColliDaProduzioneRequestDTO))
.enqueue(new ManagedErrorCallback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<MtbColt>> call, Response<ServiceRESTResponse<MtbColt>> response) {
analyzeAnswerList(response, "importColliDaProduzione", mtbColt -> {
onComplete.run(mtbColt.get(0));
}, ex -> {
if (onFailed != null) onFailed.run(ex);
});
}
var response = service.importColliDaProduzione(Collections.singletonList(importColliDaProduzioneRequestDTO))
.execute();
@Override
public void onFailure(Call<ServiceRESTResponse<MtbColt>> call, @NonNull final Exception e) {
onFailed.run(e);
}
});
var data = analyzeAnswerList(response, "importColliDaProduzione");
return data != null ? data : new ArrayList<>();
}
public void deleteColloDaProduzione(MtbColt mtbColtToDelete, Runnable onComplete, RunnableArgs<Exception> onFailed) {
ProdRientroMerceOrderDetailRESTConsumerService service = restBuilder.getService(ProdRientroMerceOrderDetailRESTConsumerService.class);
service.deleteColloDaProduzione(mtbColtToDelete).enqueue(new ManagedErrorCallback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "deleteColloDaProduzione", mtbColt -> {
onComplete.run();
}, ex -> {
if (onFailed != null) onFailed.run(ex);
});
}
public void deleteCaricoDaProduzione(MtbColr mtbColrToDelete) throws Exception {
DeleteCaricoDaProduzioneRequestDTO deleteCaricoDaProduzioneRequestDTO = new DeleteCaricoDaProduzioneRequestDTO()
.setBarcodeUl(mtbColrToDelete.getBarcodeUlIn())
.setCodMart(mtbColrToDelete.getCodMart())
.setPartitaMag(mtbColrToDelete.getPartitaMag())
.setCodJcom(mtbColrToDelete.getCodJcom())
.setCodCol(mtbColrToDelete.getCodCol())
.setCodTagl(mtbColrToDelete.getCodTagl());
ProdRientroMerceOrderDetailRESTConsumerService service = restBuilder.getService(ProdRientroMerceOrderDetailRESTConsumerService.class);
var response = service.deleteCaricoDaProduzione(deleteCaricoDaProduzioneRequestDTO)
.execute();
analyzeAnswer(response, "deleteCaricoDaProduzione");
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, @NonNull final Exception e) {
onFailed.run(e);
}
});
}
}

View File

@@ -4,6 +4,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.DeleteCaricoDaProduzioneRequestDTO;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.ImportColliDaProduzioneRequestDTO;
import retrofit2.Call;
import retrofit2.http.Body;
@@ -15,7 +16,7 @@ public interface ProdRientroMerceOrderDetailRESTConsumerService {
@POST("importColliDaProduzioneJson")
Call<ServiceRESTResponse<MtbColt>> importColliDaProduzione(@Body List<ImportColliDaProduzioneRequestDTO> importColliDaProduzioneRequestDTO);
@POST("cancellaColloDaProduzione")
Call<ServiceRESTResponse<Object>> deleteColloDaProduzione(@Body MtbColt mtbColtToDelete);
@POST("cancellaCaricoDaProduzione")
Call<ServiceRESTResponse<Object>> deleteCaricoDaProduzione(@Body DeleteCaricoDaProduzioneRequestDTO caricoToDeleteRequestDTO);
}

View File

@@ -0,0 +1,79 @@
package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto;
import com.google.gson.annotations.SerializedName;
public class DeleteCaricoDaProduzioneRequestDTO {
@SerializedName("barcodeUl")
private String barcodeUl;
@SerializedName("codMart")
private String codMart;
@SerializedName("partitaMag")
private String partitaMag;
@SerializedName("codJcom")
private String codJcom;
@SerializedName("codCol")
private String codCol;
@SerializedName("codTagl")
private String codTagl;
public String getBarcodeUl() {
return barcodeUl;
}
public DeleteCaricoDaProduzioneRequestDTO setBarcodeUl(String barcodeUl) {
this.barcodeUl = barcodeUl;
return this;
}
public String getCodMart() {
return codMart;
}
public DeleteCaricoDaProduzioneRequestDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getPartitaMag() {
return partitaMag;
}
public DeleteCaricoDaProduzioneRequestDTO setPartitaMag(String partitaMag) {
this.partitaMag = partitaMag;
return this;
}
public String getCodJcom() {
return codJcom;
}
public DeleteCaricoDaProduzioneRequestDTO setCodJcom(String codJcom) {
this.codJcom = codJcom;
return this;
}
public String getCodCol() {
return codCol;
}
public DeleteCaricoDaProduzioneRequestDTO setCodCol(String codCol) {
this.codCol = codCol;
return this;
}
public String getCodTagl() {
return codTagl;
}
public DeleteCaricoDaProduzioneRequestDTO setCodTagl(String codTagl) {
this.codTagl = codTagl;
return this;
}
}

View File

@@ -1,31 +1,69 @@
package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto;
import com.google.gson.annotations.SerializedName;
import java.math.BigDecimal;
import java.time.LocalDate;
public class ImportColliDaProduzioneRequestDTO {
@SerializedName("codMart")
private String codMart;
@SerializedName("codJcom")
private String codJcom;
@SerializedName("partitaMag")
private String partitaMag;
@SerializedName("pesoLordo")
private BigDecimal pesoLordo;
@SerializedName("pesoNetto")
private BigDecimal pesoNetto;
@SerializedName("codTcol")
private String codTcol;
private String fornitore;
@SerializedName("colliBancale")
private int colliBancale;
@SerializedName("qtaCnf")
private BigDecimal qtaCnf;
@SerializedName("dataCollo")
private LocalDate dataCollo;
@SerializedName("dataOrd")
private LocalDate dataOrd;
@SerializedName("numOrd")
private int numOrd;
@SerializedName("codJfas")
private String codJfas;
@SerializedName("gestione")
private String gestione;
@SerializedName("qtaCol")
private BigDecimal qtaCol;
@SerializedName("rigaOrd")
private Integer rigaOrd;
@SerializedName("numRisorse")
private Integer numRisorse;
@SerializedName("annotazioni")
private String annotazioni;
@SerializedName("autoGeneraVendita")
private boolean autoGeneraVendita;
public String getCodMart() {

View File

@@ -358,7 +358,7 @@ public class RettificaGiacenzeViewModel {
.setPartitaMag(partitaMag)
.setDataScadPartita(dataScad)
.setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa())
.setDatetimeRow(UtilityDate.getDateInstance())
.setDatetimeRow(UtilityDate.getNowTime())
.setCausale(MtbColr.Causale.RETTIFICA)
.setUtente(mCurrentUser);

View File

@@ -298,7 +298,7 @@ public class VersamentoMerceViewModel {
.setQtaCol(pickedQuantity.getQtaTot())
.setQtaCnf(pickedQuantity.getQtaCnf())
.setNumCnf(pickedQuantity.getNumCnf())
.setDatetimeRow(UtilityDate.getDateInstance());
.setDatetimeRow(UtilityDate.getNowTime());
onComplete.run(mtbColr);

View File

@@ -4,8 +4,7 @@ import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.Html;
import android.text.SpannableString;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -16,7 +15,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableField;
import androidx.fragment.app.DialogFragment;
@@ -43,7 +41,6 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
import it.integry.integrywmsnative.core.utility.UtilityObservable;
import it.integry.integrywmsnative.databinding.DialogInputLuProdBinding;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLULineeProdAdapter;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLULineeProdListModel;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
@@ -54,6 +51,9 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
@Inject
DialogInputLUProdViewModel mViewModel;
@Inject
Handler handler;
private final SimpleBluetoothDeviceInterface mBluetoothDeviceInterface;
private final DialogInputLUProdDTO mDialogInputLUProdDTO;
private final RunnableArgs<DialogInputLUProdResultDTO> mOnComplete;
@@ -116,7 +116,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_input_lu_prod, container, false);
mBindings = DialogInputLuProdBinding.inflate(inflater, container, false);
mBindings.setLifecycleOwner(this);
mBindings.toolbar.setTitle("Creazione pedana");
@@ -439,25 +439,20 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
@Override
public void onDataChanged() {
this.mEnableDataCallback = false;
handler.post(() -> {
this.currentNumCnf.set(this.mViewModel.getNumCnf());
this.currentPesoCollo.set(this.mViewModel.getPesoCollo());
this.currentPesoNetto.set(this.mViewModel.getPesoNetto());
this.currentTaraPed.set(this.mViewModel.getTaraPed());
this.currentTaraCol.set(this.mViewModel.getTaraCol());
this.currentPesoLordo.set(this.mViewModel.getPesoLordo());
this.mEnableDataCallback = false;
this.mBindings.executePendingBindings();
this.currentNumCnf.set(this.mViewModel.getNumCnf());
this.currentPesoCollo.set(this.mViewModel.getPesoCollo());
this.currentPesoNetto.set(this.mViewModel.getPesoNetto());
this.currentTaraPed.set(this.mViewModel.getTaraPed());
this.currentTaraCol.set(this.mViewModel.getTaraCol());
this.currentPesoLordo.set(this.mViewModel.getPesoLordo());
this.mEnableDataCallback = true;
}
this.mBindings.executePendingBindings();
@Override
public void onError(Exception ex) {
this.onLoadingEnded();
DialogSimpleMessageView
.makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
.show(getActivity().getSupportFragmentManager(), "tag");
this.mEnableDataCallback = true;
});
}
}

View File

@@ -1,25 +1,24 @@
package it.integry.integrywmsnative.view.dialogs.printSsccUl;
import android.app.Dialog;
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.RadioGroup;
import androidx.annotation.NonNull;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogPrintUlSsccBinding;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.dto.PrintUlDTO;
@@ -47,26 +46,33 @@ public class DialogPrintUlSSCCView extends BaseDialogFragment {
.setMtbColt(mtbColt)
.setFlagPrintShipmentLabel(!UtilityString.isNullOrEmpty(codJcom))
.setFlagPrintProductionLabel(UtilityString.isNullOrEmpty(codJcom));
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
this.mContext = getActivity();
mBindings = DialogPrintUlSsccBinding.inflate(inflater, container, false);
MainApplication.appComponent
.dialogPrintUlSSCCComponent()
.create();
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
mBindings = DialogPrintUlSsccBinding.inflate(LayoutInflater.from(requireContext()), null, false);
mBindings.setLifecycleOwner(this);
mBindings.setView(this);
setCancelable(true);
getDialog().setCanceledOnTouchOutside(true);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
return mBindings.getRoot();
setCancelable(true);
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(mBindings.getRoot())
.setCancelable(isCancelable())
.setPositiveButton(R.string.confirm, (dialog, which) -> onPositiveClick())
.setNegativeButton(R.string.abort, (dialog, which) -> onNegativeClick())
.create();
alertDialog.setCanceledOnTouchOutside(isCancelable());
alertDialog.setOnShowListener(this);
alertDialog.setOnDismissListener(this);
return alertDialog;
}
public void onCheckChange(RadioGroup radioGroup, int id) {
@@ -76,13 +82,18 @@ public class DialogPrintUlSSCCView extends BaseDialogFragment {
}
public void onPositiveClick() {
this.dismiss();
// this.dismiss();
}
public void onNegativeClick() {
this.printUlDTO.setFlagPrintProductionLabel(false);
this.printUlDTO.setFlagPrintShipmentLabel(false);
this.dismiss();
// this.dismiss();
}
@Override
public void dismiss() {
if(getDialog() != null) getDialog().dismiss();
}
@Override
@@ -107,10 +118,4 @@ public class DialogPrintUlSSCCView extends BaseDialogFragment {
super.onStart();
}
@Override
public void onError(Exception ex) {
UtilityExceptions.defaultException(this.mContext, ex);
dismiss();
}
}

View File

@@ -324,22 +324,21 @@
android:weightSum="1">
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/abort_btn"
style="@style/Button.DangerFull"
style="@style/Button.DangerOutline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="0.5"
android:onClick="@{() -> view.dismiss()}"
android:paddingEnd="3dp"
android:text="@string/abort"
app:icon="@drawable/ic_close_24dp"
app:iconGravity="textStart"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/save_btn"
style="@style/Button.PrimaryFull"
android:layout_width="0dp"
@@ -347,7 +346,6 @@
android:layout_marginStart="8dp"
android:layout_weight="0.5"
android:onClick="@{() -> view.save()}"
android:paddingEnd="3dp"
android:text="@string/confirm"
app:icon="@drawable/ic_save_24"
app:iconGravity="textStart"

View File

@@ -12,110 +12,93 @@
type="it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCView" />
</data>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="24dp"
app:cardCornerRadius="16dp"
app:cardElevation="0dp">
<androidx.cardview.widget.CardView
android:id="@+id/base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
app:cardBackgroundColor="@color/light_blue_300"
app:cardCornerRadius="24dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@drawable/dialog_card_child_bg"
android:padding="24dp">
android:text="@string/action_close_order"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/description_text"
style="@style/MaterialAlertDialog.Material3.Body.Text.CenterStacked"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:text="@string/message_print_SSCC_list_on_close_order" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="@string/action_close_order" />
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:onCheckedChanged="@{view::onCheckChange}">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/description_text"
style="@style/TextViewMaterial"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:gravity="left"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_text"
android:text="@string/message_print_SSCC_list_on_close_order" />
<RadioGroup
android:id="@+id/radioGroup"
<RadioButton
android:id="@+id/print_shipping_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onCheckedChanged="@{view::onCheckChange}"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@id/description_text">
android:layout_height="match_parent"
android:text="@string/action_print_shipping_SSCC" />
<RadioButton
android:id="@+id/print_shipping_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/action_print_shipping_SSCC" />
<RadioButton
android:id="@+id/print_production_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/action_print_production_SSCC" />
</RadioGroup>
<RadioButton
android:id="@+id/print_production_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/action_print_production_SSCC" />
</RadioGroup>
<com.google.android.material.button.MaterialButton
android:id="@+id/buttonPositive"
style="?attr/materialButtonOutlinedStyle"
android:layout_marginTop="12dp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:onClick="@{() -> view.onPositiveClick()}"
android:text="@string/confirm"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/radioGroup" />
<!-- <com.google.android.material.button.MaterialButton-->
<!-- android:id="@+id/buttonPositive"-->
<!-- style="?attr/materialButtonOutlinedStyle"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="12dp"-->
<!-- android:onClick="@{() -> view.onPositiveClick()}"-->
<!-- android:text="@string/confirm"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@id/radioGroup" />-->
<com.google.android.material.button.MaterialButton
android:id="@+id/buttonNegative"
style="@style/Button.DangerOutline"
android:layout_marginTop="12dp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:onClick="@{() -> view.onNegativeClick()}"
android:text="@string/abort"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
app:layout_constraintTop_toBottomOf="@id/radioGroup"
app:layout_constraintEnd_toStartOf="@id/buttonPositive"
<!-- <com.google.android.material.button.MaterialButton-->
<!-- android:id="@+id/buttonNegative"-->
<!-- style="@style/Button.DangerOutline"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="12dp"-->
<!-- android:layout_marginTop="12dp"-->
<!-- android:layout_marginEnd="12dp"-->
<!-- android:onClick="@{() -> view.onNegativeClick()}"-->
<!-- android:text="@string/abort"-->
<!-- app:layout_constraintEnd_toStartOf="@id/buttonPositive"-->
<!-- app:layout_constraintTop_toBottomOf="@id/radioGroup"-->
/>
<!-- />-->
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@@ -726,7 +726,7 @@
android:padding="8dp">
<com.google.android.material.button.MaterialButton
<Button
style="@style/Button.PrimaryOutline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -734,7 +734,7 @@
app:icon="@drawable/ic_add_24dp"
app:singleClick="@{() -> view.addULButtonClick()}" />
<com.google.android.material.button.MaterialButton
<Button
style="@style/Button.PrimaryOutline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -3,8 +3,6 @@
<data>
<import type="it.integry.integrywmsnative.core.model.MtbColt" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
@@ -14,8 +12,8 @@
<import type="android.view.View" />
<variable
name="mtbColt"
type="MtbColt" />
name="mtbColr"
type="it.integry.integrywmsnative.core.model.MtbColr" />
</data>
@@ -54,7 +52,7 @@
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:text="@{mtbColt.numCollo.toString()}"
android:text="@{mtbColr.numCollo.toString()}"
android:textColor="@android:color/white"
android:textStyle="bold"
tools:text="22222" />
@@ -68,7 +66,7 @@
android:paddingTop="0dp"
android:paddingRight="6dp"
android:paddingBottom="0dp"
android:text="@{mtbColt.mtbColr.get(0).numCnf.intValue() + ` col`}"
android:text="@{mtbColr.numCnf.intValue() + ` col`}"
android:textStyle="bold"
tools:text="45 col" />
@@ -94,7 +92,8 @@
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/peso_lordo_collo"
android:text="@{mtbColt.getDataColloHumanLong()}"
app:localDateText="@{mtbColr.dataColloLD}"
app:dateFormat="@{UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN_LONG}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Medium"
android:textColor="@android:color/black"
android:textSize="16sp"
@@ -106,10 +105,11 @@
android:layout_alignParentStart="true"
android:layout_marginStart="4dp"
android:layout_toEndOf="@id/peso_lordo_collo"
android:text="@{mtbColt.timeVers}"
app:localDateTimeText="@{mtbColr.datetimeRow}"
app:dateFormat="@{UtilityDate.COMMONS_DATE_FORMATS.TIME}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="28 ottobre 2018" />
tools:text="10:16" />
</androidx.appcompat.widget.LinearLayoutCompat>
@@ -123,7 +123,7 @@
android:backgroundTint="@color/green_400"
android:paddingStart="6dp"
android:paddingEnd="6dp"
android:text="@{UtilityNumber.decimalToString(mtbColt.pesoKg, 0) + ` KG`}"
android:text="@{UtilityNumber.decimalToString(mtbColr.pesoLordoKg, 0) + ` KG`}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Medium"
android:textColor="@android:color/black"
android:textStyle="bold"
@@ -136,15 +136,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/peso_netto_collo"
android:text="@{`Linea: ` + mtbColt.codJfas}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:visibility="@{UtilityString.isNullOrEmpty(mtbColt.codJfas) ? View.INVISIBLE : View.VISIBLE}"
tools:text="Linea: L3" />
<!-- <androidx.appcompat.widget.AppCompatTextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_alignParentStart="true"-->
<!-- android:layout_toStartOf="@id/peso_netto_collo"-->
<!-- android:text="@{`Linea: ` + mtbColr.codJfas}"-->
<!-- android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"-->
<!-- android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.codJfas) ? View.INVISIBLE : View.VISIBLE}"-->
<!-- tools:text="Linea: L3" />-->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/peso_netto_collo"
@@ -152,7 +152,7 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:text="@{UtilityNumber.decimalToString(mtbColt.pesoNettoKg, 0) + `KG netto`}"
android:text="@{UtilityNumber.decimalToString(mtbColr.pesoNettoKg, 0) + `KG netto`}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="628KG netto" />

View File

@@ -31,11 +31,6 @@
</style>
<style name="Button.DangerFull" parent="Widget.Material3.Button.UnelevatedButton">
<!-- <item name="fontFamily">@font/product_sans_regular</item> &lt;!&ndash; target android sdk versions < 26 and > 14 if theme other than AppCompat &ndash;&gt;-->
<!-- <item name="android:textStyle">bold</item>-->
<!-- <item name="android:textAllCaps">false</item>-->
<!-- <item name="android:paddingTop">8dp</item>-->
<!-- <item name="android:paddingBottom">8dp</item>-->
<item name="backgroundTint">@color/red_400</item>
<item name="iconTint">@android:color/white</item>
</style>

View File

@@ -80,13 +80,7 @@
</style>
<style name="AppTheme.NewMaterial.Dialog.FullscreenDialog" parent="Theme.Material3.DayNight">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="fontFamily">@font/google_sans_regular</item> <!-- target android sdk versions < 26 and > 14 if theme other than AppCompat -->
<style name="AppTheme.NewMaterial.Dialog.FullscreenDialog" parent="AppTheme">
<item name="windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowAnimationStyle">@style/Animation.AppCompat.Dialog</item>