Gestite le date con Timezone fisso (Europe/Rome) in modo da avere tutte le date corrette. Implementata creazione collo per i resi da cliente.

This commit is contained in:
Giuseppe Scorrano 2019-08-02 17:52:26 +02:00
parent 24a0e17fd5
commit 30dd94ca80
31 changed files with 547 additions and 408 deletions

View File

@ -19,7 +19,7 @@
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity
android:name=".gest.ultime_consegne_cliente_picking.UltimeConsegneClientePickingActivity"
android:name=".gest.picking_resi.PickingResiActivity"
android:label="@string/activity_ultime_consegne_title"
android:screenOrientation="portrait"
android:theme="@style/Light" />

View File

@ -5,6 +5,8 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.utility.UtilityDate;
/**
* Created by GiuseppeS on 06/03/2018.
*/
@ -25,12 +27,7 @@ public class ServiceRESTResponse<T> {
}
public Date getExecDate() {
try {
return new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(execDate);
} catch (Exception e) {
e.printStackTrace();
}
return null;
return UtilityDate.recognizeDateWithExceptionHandler(execDate);
}
public String getProfileDB() {

View File

@ -139,6 +139,8 @@ public class DtbDocr {
private int rigaKit;
private MtbAart mtbAart;
public String getCodAnag() {
return codAnag;
}
@ -736,4 +738,13 @@ public class DtbDocr {
this.rigaKit = rigaKit;
return this;
}
public MtbAart getMtbAart() {
return mtbAart;
}
public DtbDocr setMtbAart(MtbAart mtbAart) {
this.mtbAart = mtbAart;
return this;
}
}

View File

@ -4,6 +4,8 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class FiltroOrdineDTO {
private String gestioneOrd;
@ -24,9 +26,8 @@ public class FiltroOrdineDTO {
return dataOrd;
}
public Date getDataOrdD() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataOrdS());
public Date getDataOrdD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
}
public FiltroOrdineDTO setDataOrd(String dataOrd) {
@ -35,8 +36,7 @@ public class FiltroOrdineDTO {
}
public FiltroOrdineDTO setDataOrd(Date dataOrd) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataOrd = sdf.format(dataOrd);
this.dataOrd = UtilityDate.formatDate(dataOrd, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -44,13 +44,8 @@ public class FiltroOrdineDTO {
return dataCons;
}
public Date getDataConsD() throws ParseException {
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataConsS());
} catch (Exception ex) {
return null;
}
public Date getDataConsD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
}
public FiltroOrdineDTO setDataCons(String dataCons) {
@ -60,8 +55,7 @@ public class FiltroOrdineDTO {
public FiltroOrdineDTO setDataCons(Date dataCons) {
if(dataCons != null) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataCons = sdf.format(dataCons);
this.dataCons = UtilityDate.formatDate(dataCons, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
}
return this;
}

View File

@ -9,6 +9,7 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
@ -266,13 +267,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public Date getDataColloD() {
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataColloS());
} catch (ParseException pex){
UtilityLogger.errorMe(pex);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
}
public MtbColr setDataCollo(String dataCollo) {
@ -376,13 +371,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public Date getDataOrdD() {
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataOrdS());
} catch (ParseException pex){
UtilityLogger.errorMe(pex);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
}
public MtbColr setDataOrd(String dataOrd) {
@ -391,8 +380,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public MtbColr setDataOrd(Date dataOrd) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataOrd = sdf.format(dataOrd);
this.dataOrd = UtilityDate.formatDate(dataOrd, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -401,13 +389,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public Date getDataColloRifD() {
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataColloRifS());
} catch (ParseException pex){
UtilityLogger.errorMe(pex);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloRifS());
}
public MtbColr setDataColloRif(String dataColloRif) {
@ -416,8 +398,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public MtbColr setDataColloRif(Date dataColloRif) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataColloRif = sdf.format(dataColloRif);
this.dataColloRif = UtilityDate.formatDate(dataColloRif, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -473,9 +454,8 @@ public class MtbColr extends EntityBase implements Parcelable {
return datetimeRow;
}
public Date getDatetimeRowD() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDatetimeRowS());
public Date getDatetimeRowD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDatetimeRowS());
}
public MtbColr setDatetimeRow(String datetimeRow) {
@ -484,8 +464,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public MtbColr setDatetimeRow(Date datetimeRow) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.datetimeRow = sdf.format(datetimeRow);
this.datetimeRow = UtilityDate.formatDate(datetimeRow, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -542,15 +521,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public Date getDataScadPartitaD() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
if(!UtilityString.isNullOrEmpty(getDataScadPartitaS()))
return sdf.parse(getDataScadPartitaS());
else return null;
} catch (Exception ex) {
UtilityLogger.errorMe(ex);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataScadPartitaS());
}
public MtbColr setDataScadPartita(String dataScadPartita) {
@ -559,10 +530,7 @@ public class MtbColr extends EntityBase implements Parcelable {
}
public MtbColr setDataScadPartita(Date dataScadPartita) {
if(dataScadPartita != null) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataScadPartita = sdf.format(dataScadPartita);
} else this.dataScadPartita = null;
this.dataScadPartita = UtilityDate.formatDate(dataScadPartita, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}

View File

@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class MtbCols extends EntityBase {
@ -22,7 +23,7 @@ public class MtbCols extends EntityBase {
type = "mtb_cols";
setCodMdep(SettingsManager.i().userSession.depo.getCodMdep());
setModificatoDa(SettingsManager.i().user.fullname);
setDataMove(new Date());
setDataMove(UtilityDate.getDateInstance());
}
public String getDataCollo() {
@ -89,8 +90,7 @@ public class MtbCols extends EntityBase {
}
public MtbCols setDataMove(Date dataMove) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataMove = sdf.format(dataMove);
this.dataMove = UtilityDate.formatDate(dataMove, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}

View File

@ -76,8 +76,7 @@ public class MtbColt extends EntityBase {
Date dateOrd = UtilityDate.recognizeDate(this.dataOrd);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String dateYMD = sdf.format(dateOrd);
String dateYMD = UtilityDate.formatDate(dateOrd, UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH);
this.filtroOrdini = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ROOT><FILTER><DTB_ORDT><GESTIONE type=\"V\">" + this.gestione + "</GESTIONE><DATA_ORD type=\"D\">" + dateYMD + "</DATA_ORD><NUM_ORD type=\"N\">" + this.numOrd + "</NUM_ORD></DTB_ORDT></FILTER></ROOT>";
}
@ -97,14 +96,14 @@ public class MtbColt extends EntityBase {
public MtbColt(){
type = "mtb_colt";
setDataCollo(new Date());
setDataCollo(UtilityDate.getDateInstance());
setSerCollo("/");
}
public void initDefaultFields() {
setCodMdep(SettingsManager.i().userSession.depo.getCodMdep());
setPreparatoDa(SettingsManager.i().user.fullname);
setOraInizPrep(new Date());
setOraInizPrep(UtilityDate.getDateInstance());
setCodAnag(SettingsManager.iDB().getDefaultCodAnag());
}
@ -145,13 +144,7 @@ public class MtbColt extends EntityBase {
}
public Date getDataColloD() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
return sdf.parse(getDataColloS());
} catch (ParseException e) {
UtilityLogger.errorMe(e);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
}
public MtbColt setDataCollo(String dataCollo) {
@ -160,8 +153,7 @@ public class MtbColt extends EntityBase {
}
public MtbColt setDataCollo(Date dataCollo) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataCollo = sdf.format(dataCollo);
this.dataCollo = UtilityDate.formatDate(dataCollo, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -328,10 +320,7 @@ public class MtbColt extends EntityBase {
}
public MtbColt setDataOrdD(Date dataOrd) {
if(dataOrd != null) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.dataOrd = sdf.format(dataOrd);
} else this.dataOrd = null;
this.dataOrd = UtilityDate.formatDate(dataOrd, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -354,8 +343,7 @@ public class MtbColt extends EntityBase {
}
public MtbColt setOraInizPrep(Date oraInizPrep) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.oraInizPrep = sdf.format(oraInizPrep);
this.oraInizPrep = UtilityDate.formatDate(oraInizPrep, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
@ -369,8 +357,7 @@ public class MtbColt extends EntityBase {
}
public MtbColt setOraFinePrep(Date oraFinePrep) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
this.oraFinePrep = sdf.format(oraFinePrep);
this.oraFinePrep = UtilityDate.formatDate(oraFinePrep, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}

View File

@ -16,7 +16,7 @@ public class UtilityBarcode {
}
public static boolean isEtichettaAnonimaOfCurrentYear(String barcode) {
Calendar calendar = Calendar.getInstance();
Calendar calendar = UtilityDate.getCalendarInstance();
int currentYear = calendar.get(Calendar.YEAR);
String fullYear = "20" + UtilityBarcode.getAnnoColloFromULAnonima(barcode);

View File

@ -7,7 +7,6 @@ public class UtilityDB {
public static String valueToString(Object value) {
String valueString;
SimpleDateFormat dateFormatFile = new SimpleDateFormat("yyyy-MM-dd");
if (value == null) {
valueString = "NULL";
@ -22,7 +21,8 @@ public class UtilityDB {
valueString = "'" + valueString.replaceAll("'","''") + "'";
}
} else if (value instanceof Date){
valueString = "'" + dateFormatFile.format(value) + "'";
valueString = "'" + UtilityDate.formatDate((Date) value, UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH) + "'";
} else if (value instanceof Integer) {
} else {

View File

@ -2,7 +2,10 @@ package it.integry.integrywmsnative.core.utility;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
@ -16,8 +19,9 @@ public class UtilityDate {
public static class COMMONS_DATE_FORMATS {
public static final String DMY_SLASH = "dd/MM/yyyy";
public static final String YMD_SLASH = "yyyy/MM/dd";
public static final String DMY_TIME_SLASH = DMY_SLASH + " hh:mm";
public static final String YMD_TIME_SLASH = YMD_SLASH + " hh:mm";
public static final String YMD_DASH = "yyyy-MM-dd";
public static final String DMY_TIME_SLASH = DMY_SLASH + " hh:mm:ss";
public static final String YMD_TIME_SLASH = YMD_SLASH + " hh:mm:ss";
public static final String DM_HUMAN = "dd MMM";
@ -74,11 +78,27 @@ public class UtilityDate {
format = new SimpleDateFormat(dateFormatString);
}
format.setTimeZone(TimeZone.getTimeZone("Europe/Rome"));
return format.parse(dateString);
}
public static String formatDate(Date dateToFormat, String format) {
return new SimpleDateFormat(format).format(dateToFormat);
if(dateToFormat != null) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setTimeZone(TimeZone.getTimeZone("Europe/Rome"));
return sdf.format(dateToFormat);
}
else return null;
}
public static Date getDateInstance() {
return getCalendarInstance().getTime();
}
public static Calendar getCalendarInstance() {
return Calendar.getInstance(TimeZone.getTimeZone("Europe/Rome"));
}
}

View File

@ -55,8 +55,7 @@ public class UtilityLogger {
String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB;
message = message.replace("#azienda_nome#", currentAzienda);
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");
message = message.replace("#current_date#", sdf.format(new Date()));
message = message.replace("#current_date#", UtilityDate.formatDate(UtilityDate.getDateInstance(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed);
}

View File

@ -13,6 +13,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityDate;
/**
* Created by GiuseppeS on 06/03/2018.
@ -138,17 +139,12 @@ public class OrdineAccettazioneDTO implements Parcelable {
return dataCons;
}
public Date getDataOrd() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date dataOrd = null;
public String getDataOrdS() {
return this.dataOrd;
}
try{
dataOrd = sdf.parse(this.dataOrd);
} catch (Exception ex) {
Log.e("Parsing date", ex.getMessage());
}
return dataOrd;
public Date getDataOrdD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
}

View File

@ -15,6 +15,7 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
@ -299,8 +300,6 @@ public class AccettazioneOrdineInevasoHelper {
BigDecimal currentQtaEvasa = item.getQtaRiservate().add(item.getQtaEvasa());
if(mtbColrs != null) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
List<MtbColr> filteredMtbColrs = Stream.of(mtbColrs)
.filter(x -> x.getNumOrd() != null)
.filter(
@ -308,7 +307,7 @@ public class AccettazioneOrdineInevasoHelper {
(x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.codJcom)) &&
x.getRigaOrd() == item.rigaOrd &&
x.getNumOrd() == item.numOrd &&
x.getDataOrdS().equals(sdf.format(item.getDataOrd()))).toList();
x.getDataOrdS().equals(UtilityDate.formatDate(item.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH))).toList();
for (MtbColr mtbColr : filteredMtbColrs) {

View File

@ -203,7 +203,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
List<OrdineAccettazioneDTO.Riga> foundRows = Stream.of(groupedOrdini)
.filter(x -> x.getNumOrd() == currentMtbColr.getNumOrd() &&
x.getRigaOrd() == currentMtbColr.getRigaOrd()&&
x.getDataOrd().equals(currentMtbColr.getDataOrdD()))
x.getDataOrdD().equals(currentMtbColr.getDataOrdD()))
.toList();
*/
@ -657,7 +657,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
MtbColt cloneMtbColt = (MtbColt) getColloRef().clone();
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
cloneMtbColt.setOraFinePrep(new Date());
cloneMtbColt.setOraFinePrep(UtilityDate.getDateInstance());
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
@ -792,7 +792,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
x.getMtbAart().getCodMart().equalsIgnoreCase(currentRow.getCodMart()) &&
x.getCodJcom().equalsIgnoreCase(currentRow.getCodJcom()) &&
x.getRigaOrd() == currentRow.getRigaOrd() &&
x.getDataOrd().equals(currentRow.getDataOrdD()) &&
x.getDataOrdD().equals(currentRow.getDataOrdD()) &&
x.getNumOrd() == currentRow.getNumOrd()
)
.forEach(x -> x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol())));
@ -912,7 +912,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
.setDescrizione(item.getDescrizioneEstesa())
.setNumOrd(item.getNumOrd())
.setDataOrd(item.getDataOrd())
.setDataOrd(item.getDataOrdD())
.setGestioneRif(gestioneRif)
.setCodJcom(item.getCodJcom())
.setRigaOrd(item.getRigaOrd());

View File

@ -545,7 +545,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
.setDatetimeRow(new Date());
.setDatetimeRow(UtilityDate.getDateInstance());
onComplete.run(mtbColr);
}, onAbort).show();
@ -688,7 +688,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
MtbColt cloneMtbColt = (MtbColt) this.mtbColt.get().clone();
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
cloneMtbColt.setOraFinePrep(new Date());
cloneMtbColt.setOraFinePrep(UtilityDate.getDateInstance());
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
@ -741,7 +741,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
mtbColrToDeleteClone
.setRiga(null)
.setDatetimeRow(new Date())
.setDatetimeRow(UtilityDate.getDateInstance())
.setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1)))
.setOperation(CommonModelConsts.OPERATION.DELETE);

View File

@ -0,0 +1,324 @@
package it.integry.integrywmsnative.gest.picking_resi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableField;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.SpannableString;
import com.annimon.stream.Stream;
import com.tfb.fbtoast.FBToast;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ActivityPickingResiBinding;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
import it.integry.integrywmsnative.gest.picking_resi.core.PickingResiListAdapter;
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class PickingResiActivity extends AppCompatActivity {
private List<DocumentoResoDTO> mDocumentiResiList;
private List<DtbDocr> mDtbDocrList;
private HashMap<DtbDocr, List<MtbColr>> mWithdrawRows = new HashMap<>();
private ActivityPickingResiBinding mBinding;
public ObservableField<MtbColt> currentMtbColt = new ObservableField<>();
private int barcodeScannerIstanceID = -1;
private String mDefaultGestioneOfUL;
private String mDefaultCodAnagOfUL;
private String mDefaultCodMDepOfUL;
public static void startActivity(Context context, List<DocumentoResoDTO> documentoResoDTOList) {
String consegneCacheKey = DataCache.addItem(documentoResoDTOList);
Intent intent = new Intent(context, PickingResiActivity.class);
intent.putExtra("key", consegneCacheKey);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi);
mBinding.setViewmodel(this);
mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key"));
this.initView();
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onBackPressed() {
// if(mArticoliInColloBottomSheetViewModel.isExpanded()){
// mArticoliInColloBottomSheetViewModel.collapse();
// } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
// mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
// BarcodeManager.removeCallback(barcodeScannerIstanceID);
// super.onBackPressed();
// });
//
// } else {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
// }
}
private void initView() {
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(this::onScanSuccessful)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
setSupportActionBar(this.mBinding.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
this.mBinding.elevatedToolbar.setRecyclerView(this.mBinding.mainList);
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(mDocumentiResiList, dtbDocrToPick -> {
progressDialog.dismiss();
this.mDtbDocrList = dtbDocrToPick;
try {
this.initDatiPicking();
} catch (Exception ex) {
this.showErrorDialog(ex.getMessage());
}
this.initList(dtbDocrToPick);
}, ex -> {
UtilityExceptions.defaultException(this, ex, progressDialog);
});
}
private void initList(List<DtbDocr> dtbDocrList) {
PickingResiListAdapter adapter = new PickingResiListAdapter(this, dtbDocrList);
adapter.setOnItemClicked(this::onOrdineRowDispatch);
this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
this.mBinding.mainList.setAdapter(adapter);
}
private void initDatiPicking() throws Exception {
List<String> foundGestioni = Stream.of(this.mDocumentiResiList)
.map(DocumentoResoDTO::getGestione)
.distinct()
.toList();
if(foundGestioni.size() > 1) {
throw new Exception("Sono stati caricati documenti con diverse gestioni");
} else mDefaultGestioneOfUL = foundGestioni.get(0);
List<String> foundCodAnags = Stream.of(this.mDocumentiResiList)
.map(DocumentoResoDTO::getCodAnag)
.distinct()
.toList();
if(foundCodAnags.size() > 1) {
throw new Exception("Sono stati caricati documenti con diversi codici anagrafici");
} else mDefaultCodAnagOfUL = foundCodAnags.get(0);
List<String> foundCodMdeps = Stream.of(this.mDocumentiResiList)
.map(DocumentoResoDTO::getCodMdep)
.distinct()
.toList();
if(foundCodMdeps.size() > 1) {
throw new Exception("Sono stati caricati documenti con diversi codici deposito");
} else mDefaultCodMDepOfUL = foundCodMdeps.get(0);
for (DtbDocr dtbDocr : mDtbDocrList) {
this.mWithdrawRows.put(dtbDocr, new ArrayList<>());
}
}
private void onScanSuccessful(BarcodeScanDTO data) {
}
public void createNewUL() {
this.createNewUL(null, null, null, false, true, null);
}
public void createNewUL(Integer customNumCollo, String customSerCollo, ProgressDialog progress, boolean disablePrint, boolean closeProgress, Runnable onComplete) {
this.mBinding.mainFab.close(true);
if (progress == null){
progress = UtilityProgress.createDefaultProgressDialog(this);
}
MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields();
mtbColt .setGestione(mDefaultGestioneOfUL)
.setSegno(+1)
.setCodAnag(mDefaultCodAnagOfUL)
.setCodMdep(mDefaultCodMDepOfUL)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
if(customNumCollo != null) {
mtbColt.setNumCollo(customNumCollo);
}
if(!UtilityString.isNullOrEmpty(customSerCollo)) {
mtbColt.setSerCollo(customSerCollo);
}
ProgressDialog finalProgress = progress;
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
value.setDisablePrint(disablePrint);
setULToCurrentContext(value);
if(closeProgress) finalProgress.dismiss();
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
if(onComplete != null) onComplete.run();
}, ex -> {
UtilityExceptions.defaultException(this, ex, finalProgress);
});
}
private void setULToCurrentContext(MtbColt mtbColt){
if(mtbColt != null && mtbColt.getMtbColr() == null) {
mtbColt.setMtbColr(new ObservableArrayList<>());
}
this.currentMtbColt.set(mtbColt);
}
public void onOrdineRowDispatch(final DtbDocr item) {
if(currentMtbColt.get() != null){
List<MtbColr> currentMtbColrs = mWithdrawRows.get(item);
BigDecimal qtaEvasaTotaleInMtbColr = BigDecimal.ZERO;
for (MtbColr mtbColr : currentMtbColrs) {
qtaEvasaTotaleInMtbColr.add(mtbColr.getQtaCol());
}
BigDecimal qtaDaEvadere = item.getQtaDoc().subtract(qtaEvasaTotaleInMtbColr);
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
.setBatchLot(item.getPartitaMag())
.setCodArtFor(item.getCodArtFor())
.setMtbAart(item.getMtbAart())
.setQtaDisponibile(qtaDaEvadere)
.setQtaTot(qtaDaEvadere)
.setQtaEvasa(qtaEvasaTotaleInMtbColr)
.setCanPartitaMagBeChanged(false)
.setMaxQta(qtaDaEvadere);
// if(item.getTempPickData() != null) {
// PickingObjectDTO.PickData tmpPickData = item.getTempPickData();
//
// if(!UtilityString.isNullOrEmpty(tmpPickData.getBatchLot())) {
// dto.setBatchLot(tmpPickData.getBatchLot());
// }
//
// if(tmpPickData.getDataScad() != null){
// dto.setDataScad(tmpPickData.getDataScad());
// dto.setShouldAskDataScad(true);
// }
//
// boolean useQtaDaEvadere;
//
// if(tmpPickData.getQtaTot() != null) {
// useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissa();
// if(useQtaDaEvadere){
// dto.setQtaTot(qtaDaEvadere);
// dto.setMaxQta(qtaDaEvadere);
// } else {
// dto.setQtaTot(tmpPickData.getQtaTot());
// dto.setMaxQta(tmpPickData.getQtaTot());
// dto.setQtaCnf(tmpPickData.getQtaTot());
// }
//
//
// if (tmpPickData.getQtaCnf() != null && useQtaDaEvadere) {
// dto.setQtaCnf(tmpPickData.getQtaCnf());
// }
// }
//
//
// if(dto.getQtaTot() != null && dto.getQtaTot().floatValue() > 0 && dto.getQtaCnf() != null && dto.getQtaCnf().floatValue() > 0) {
// dto.setNumCnf(dto.getQtaTot().divide(dto.getQtaCnf()).intValue());
// }
//
//
// dto.setCanPartitaMagBeChanged(false);
// dto.setCanDataScadBeChanged(false);
//
// }
DialogInputQuantity.makeBase(this, dto, false, (quantityDTO, closeUL) -> {
//onOrdineRowDispatched(item, quantityDTO, closeUL);
}, null).show();
}
}
private void showErrorDialog(String message) {
DialogSimpleMessageHelper.makeErrorDialog(
this,
new SpannableString(message),
null,
null).show();
}
}

View File

@ -1,20 +1,20 @@
package it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.core;
package it.integry.integrywmsnative.gest.picking_resi.core;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.annimon.stream.Stream;
import com.google.android.gms.common.internal.service.Common;
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
@ -22,14 +22,14 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding;
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding;
public class UltimeConsegneClientePickingListAdapter extends SectionedRecyclerViewAdapter<UltimeConsegneClientePickingListAdapter.SubheaderHolder, UltimeConsegneClientePickingListAdapter.SingleItemViewHolder> {
public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<PickingResiListAdapter.SubheaderHolder, PickingResiListAdapter.SingleItemViewHolder> {
private Context mContext;
private List<DtbDocr> mDataset;
private LayoutInflater mInflater;
private RunnableArgs<DtbDocr> mOnItemClicked;
static class SubheaderHolder extends RecyclerView.ViewHolder {
@ -53,14 +53,17 @@ public class UltimeConsegneClientePickingListAdapter extends SectionedRecyclerVi
}
public UltimeConsegneClientePickingListAdapter(Context context, List<DtbDocr> data) {
public PickingResiListAdapter(Context context, List<DtbDocr> data) {
this.mContext = context;
this.mInflater = LayoutInflater.from(context);
this.mDataset = Stream.of(data)
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag())
.toList();
}
public void setOnItemClicked(RunnableArgs<DtbDocr> onItemClicked) {
this.mOnItemClicked = onItemClicked;
}
@Override
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
UltimeConsegneMainListItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.ultime_consegne_main_list__item, parent, false);
@ -82,6 +85,10 @@ public class UltimeConsegneClientePickingListAdapter extends SectionedRecyclerVi
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
holder.mBinding.descrizione.setText(UtilityString.isNullOrEmpty(dtbDocr.getDescrizioneEstesa()) ? dtbDocr.getDescrizioneEstesa() : dtbDocr.getDescrizione());
holder.mBinding.getRoot().setOnClickListener(v -> {
if(this.mOnItemClicked != null) this.mOnItemClicked.run(dtbDocr);
});
}
@Override

View File

@ -623,7 +623,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
mtbColrToEditClone
.setRiga(null)
.setDatetimeRow(new Date())
.setDatetimeRow(UtilityDate.getDateInstance())
.setQtaCol(value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol()))
.setOperation(CommonModelConsts.OPERATION.INSERT);
@ -658,7 +658,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
mtbColrToDeleteClone
.setRiga(null)
.setDatetimeRow(new Date())
.setDatetimeRow(UtilityDate.getDateInstance())
.setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1)))
.setOperation(CommonModelConsts.OPERATION.INSERT);

View File

@ -1,23 +1,25 @@
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
public class UltimeConsegneClienteRESTConsumer {
public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, RunnableArgs<ArrayList<ConsegnaClienteDTO>> onComplete, RunnableArgs<Exception> onFailed) {
public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, RunnableArgs<ArrayList<DocumentoResoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
int numberOfConsegnePerCli = 10;
int numberOfDayToAnalyze = 90;
@ -35,10 +37,10 @@ public class UltimeConsegneClienteRESTConsumer {
" counter_consegna ";
Type typeOfObjectsList = new TypeToken<ArrayList<ConsegnaClienteDTO>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<ConsegnaClienteDTO>>() {
Type typeOfObjectsList = new TypeToken<ArrayList<DocumentoResoDTO>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DocumentoResoDTO>>() {
@Override
public void onSuccess(ArrayList<ConsegnaClienteDTO> value) {
public void onSuccess(ArrayList<DocumentoResoDTO> value) {
if(onComplete != null) onComplete.run(value);
}
@ -51,7 +53,7 @@ public class UltimeConsegneClienteRESTConsumer {
public static void loadDocRowFromConsegna(List<ConsegnaClienteDTO> consegne, RunnableArgs<ArrayList<DtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
public static void loadDocRowFromConsegna(List<DocumentoResoDTO> consegne, RunnableArgs<ArrayList<DtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
StringBuilder sbWhereCond = new StringBuilder();
for(int i = 0; i < consegne.size(); i++) {
@ -81,8 +83,41 @@ public class UltimeConsegneClienteRESTConsumer {
Type typeOfObjectsList = new TypeToken<ArrayList<DtbDocr>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DtbDocr>>() {
@Override
public void onSuccess(ArrayList<DtbDocr> value) {
if(onComplete != null) onComplete.run(value);
public void onSuccess(ArrayList<DtbDocr> values) {
if(values != null && values.size() > 0){
List<String> codMarts = Stream.of(values)
.map(DtbDocr::getCodMart)
.withoutNulls()
.distinct()
.toList();
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
if(arts != null && arts.size() > 0) {
for (DtbDocr value : values) {
MtbAart foundMtbAart = null;
List<MtbAart> mtbAartStream = Stream.of(arts)
.filter(x -> x.getCodMart().equalsIgnoreCase(value.getCodMart())).toList();
if(mtbAartStream != null && mtbAartStream.size() > 0){
foundMtbAart = mtbAartStream.get(0);
}
value.setMtbAart(foundMtbAart);
}
if(onComplete != null) onComplete.run(values);
}
}, onFailed);
} else {
if(onComplete != null) onComplete.run(values);
}
}
@Override

View File

@ -15,15 +15,15 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.UltimeConsegneClientePickingActivity;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
public class UltimeConsegneClienteViewModel {
private Context mContext;
private FragmentMainUltimeConsegneClienteBinding mBinding;
private List<ConsegnaClienteDTO> mItems;
private List<DocumentoResoDTO> mItems;
public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) {
this.mContext = context;
@ -56,7 +56,7 @@ public class UltimeConsegneClienteViewModel {
});
}
private void initDataAdapter(ArrayList<ConsegnaClienteDTO> dataset) {
private void initDataAdapter(ArrayList<DocumentoResoDTO> dataset) {
UltimeConsegneMainListAdapter adapter = new UltimeConsegneMainListAdapter(mContext, dataset);
adapter.setOnSelectionChanged(this::onSingleSelectionChanged);
@ -68,8 +68,8 @@ public class UltimeConsegneClienteViewModel {
}
private void onSingleSelectionChanged(ConsegnaClienteDTO dto) {
List<ConsegnaClienteDTO> selectedOrders = getSelectedItems();
private void onSingleSelectionChanged(DocumentoResoDTO dto) {
List<DocumentoResoDTO> selectedOrders = getSelectedItems();
if(dto.isSelected()) {
Stream.of(selectedOrders)
@ -85,17 +85,17 @@ public class UltimeConsegneClienteViewModel {
}
}
private List<ConsegnaClienteDTO> getSelectedItems() {
private List<DocumentoResoDTO> getSelectedItems() {
return Stream.of(this.mItems)
.filter(ConsegnaClienteDTO::isSelected)
.filter(DocumentoResoDTO::isSelected)
.toList();
}
private void dispatchConsegne() {
List<ConsegnaClienteDTO> selectedConsegne = getSelectedItems();
List<DocumentoResoDTO> selectedConsegne = getSelectedItems();
UltimeConsegneClientePickingActivity.startActivity(mContext, selectedConsegne);
PickingResiActivity.startActivity(mContext, selectedConsegne);
}

View File

@ -17,7 +17,6 @@ import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -26,16 +25,16 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListHeaderBinding;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListSingleItemBinding;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
import it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO;
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<UltimeConsegneMainListAdapter.SubheaderHolder, UltimeConsegneMainListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
private Context mContext;
private List<ConsegnaClienteDTO> mDataset;
private List<DocumentoResoDTO> mDataset;
private ArrayList<String> mSectionTitleItems;
private RunnableArgs<ConsegnaClienteDTO> mOnSelectionChanged;
private RunnableArgs<DocumentoResoDTO> mOnSelectionChanged;
private TextDrawable.IShapeBuilder smallIconBuilder;
private TextDrawable.IShapeBuilder mediumIconBuilder;
@ -71,19 +70,19 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
public UltimeConsegneMainListAdapter(Context context, ArrayList<ConsegnaClienteDTO> dataset) {
public UltimeConsegneMainListAdapter(Context context, ArrayList<DocumentoResoDTO> dataset) {
super();
this.mContext = context;
this.mDataset = new ArrayList<>();
this.mSectionTitleItems = new ArrayList<>();
this.mDataset = Stream.of(dataset)
.sortBy(ConsegnaClienteDTO::getRagSoc)
.sortBy(DocumentoResoDTO::getRagSoc)
.toList();
Stream.of(mDataset)
.map(ConsegnaClienteDTO::getRagSoc)
.map(DocumentoResoDTO::getRagSoc)
.distinct()
.forEach(x -> {
this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
@ -142,7 +141,7 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
@Override
public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
final ConsegnaClienteDTO consegna = this.mDataset.get(position);
final DocumentoResoDTO consegna = this.mDataset.get(position);
holder.mBinding.setConsegna(consegna);
@ -163,8 +162,8 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
}
try {
Calendar calendarNow = Calendar.getInstance(TimeZone.getDefault());
Calendar calendarDataDoc = Calendar.getInstance(TimeZone.getDefault());
Calendar calendarNow = UtilityDate.getCalendarInstance();
Calendar calendarDataDoc = UtilityDate.getCalendarInstance();
calendarDataDoc.setTime(consegna.getDataDocD());
String dataDocString = "";
@ -214,7 +213,7 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
}
public void setOnSelectionChanged(RunnableArgs<ConsegnaClienteDTO> mSelectionChanged) {
public void setOnSelectionChanged(RunnableArgs<DocumentoResoDTO> mSelectionChanged) {
this.mOnSelectionChanged = mSelectionChanged;
}

View File

@ -1,194 +0,0 @@
package it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableField;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import com.tfb.fbtoast.FBToast;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.ActivityUltimeConsegneClientePickingBinding;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.core.UltimeConsegneClientePickingListAdapter;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class UltimeConsegneClientePickingActivity extends AppCompatActivity {
private List<ConsegnaClienteDTO> consegneToPick;
private List<DtbDocr> mDtbDocrList;
private ActivityUltimeConsegneClientePickingBinding mBinding;
public ObservableField<MtbColt> currentMtbColt;
private int barcodeScannerIstanceID = -1;
public static void startActivity(Context context, List<ConsegnaClienteDTO> consegnaClienteDTOList) {
String consegneCacheKey = DataCache.addItem(consegnaClienteDTOList);
Intent intent = new Intent(context, UltimeConsegneClientePickingActivity.class);
intent.putExtra("key", consegneCacheKey);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_ultime_consegne_cliente_picking);
mBinding.setViewmodel(this);
consegneToPick = DataCache.retrieveItem(getIntent().getStringExtra("key"));
this.initView();
this.initDatiPicking();
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onBackPressed() {
// if(mArticoliInColloBottomSheetViewModel.isExpanded()){
// mArticoliInColloBottomSheetViewModel.collapse();
// } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
// mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
// BarcodeManager.removeCallback(barcodeScannerIstanceID);
// super.onBackPressed();
// });
//
// } else {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
// }
}
private void initView() {
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(this::onScanSuccessful)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
setSupportActionBar(this.mBinding.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
this.mBinding.elevatedToolbar.setRecyclerView(this.mBinding.mainList);
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(consegneToPick, dtbDocrToPick -> {
progressDialog.dismiss();
this.initList(dtbDocrToPick);
}, ex -> {
UtilityExceptions.defaultException(this, ex, progressDialog);
});
}
private void initList(List<DtbDocr> dtbDocrList) {
this.mDtbDocrList = dtbDocrList;
UltimeConsegneClientePickingListAdapter adapter = new UltimeConsegneClientePickingListAdapter(this, dtbDocrList);
this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
this.mBinding.mainList.setAdapter(adapter);
}
private void initDatiPicking() {
}
private void onScanSuccessful(BarcodeScanDTO data) {
}
public void createNewUL() {
this.createNewUL(null, null, null, false, true, null);
}
public void createNewUL(Integer customNumCollo, String customSerCollo, ProgressDialog progress, boolean disablePrint, boolean closeProgress, Runnable onComplete) {
this.mBinding.mainFab.close(true);
if (progress == null){
progress = UtilityProgress.createDefaultProgressDialog(this);
}
MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields();
// mtbColt .setGestione(defaultGestioneOfUL)
// .setSegno(-1)
// .setRifOrd(defaultRifOrdOfUL)
// .setNumOrd(defaultNumOrdOfUL)
// .setDataOrdD(defaultDataOrdOfUL)
// .setCodAnag(defaultCodAnagOfUL)
// .setCodMdep(defaultCodMdepOfUL)
// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
//
// if(defaultGestioneOfUL == GestioneEnum.LAVORAZIONE) {
// mtbColt.setPosizione(defaultCodJFasOfUL);
// }
//
// if(customNumCollo != null) {
// mtbColt.setNumCollo(customNumCollo);
// }
//
// if(!UtilityString.isNullOrEmpty(customSerCollo)) {
// mtbColt.setSerCollo(customSerCollo);
// }
//
// mtbColt.generaFiltroOrdineFromDTO(defaultFiltroOrdine);
//
// ProgressDialog finalProgress = progress;
// ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
//
// mtbColt
// .setNumCollo(value.getNumCollo())
// .setDataCollo(value.getDataColloS());
// mtbColtSessionID = ColliDataRecover.startNewSession(mtbColt);
//
// value
// .setDisablePrint(disablePrint)
// .setMtbColr(new ObservableArrayList<>());
//
// setULToCurrentContext(value);
//
// if(closeProgress) finalProgress.dismiss();
//
// FBToast.successToast(this, getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
//
// if(onComplete != null) onComplete.run();
//
// }, ex -> {
// UtilityExceptions.defaultException(mActivity, ex, finalProgress);
// });
}
}

View File

@ -134,7 +134,7 @@ public class DialogVenditaFiltroAvanzato {
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getIstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
bindings.filledExposedDropdownDataCons.setOnClickListener(view -> {
Calendar c = Calendar.getInstance();
Calendar c = UtilityDate.getCalendarInstance();
if(viewModel.dataConsegnaDate != null) {
c.setTime(viewModel.dataConsegnaDate);

View File

@ -10,6 +10,7 @@ import java.util.Date;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
public class OrdineVenditaInevasoDTO implements Parcelable {
@ -194,13 +195,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
}
public Date getDataOrdD() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
return sdf.parse(getDataOrdS());
} catch (ParseException e) {
UtilityLogger.errorMe(e);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
}
public OrdineVenditaInevasoDTO setData(String data) {
@ -308,8 +303,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
}
public Date getDataInizTraspD() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataInizTraspS());
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
}
public OrdineVenditaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
@ -448,13 +442,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
}
public Date getDataConsD() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
return sdf.parse(getDataConsS());
} catch (ParseException e) {
UtilityLogger.errorMe(e);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
}
public OrdineVenditaInevasoDTO setDataCons(String dataCons) {

View File

@ -288,13 +288,7 @@ public class PickingObjectDTO implements Parcelable {
}
public Date getDataColloD() {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
return sdf.parse(getDataColloS());
} catch (ParseException e) {
UtilityLogger.errorMe(e);
return null;
}
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
}
public String getDataColloHuman() {
@ -346,9 +340,8 @@ public class PickingObjectDTO implements Parcelable {
return dataScad;
}
public Date getDataScadD() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.parse(getDataScadS());
public Date getDataScadD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataScadS());
}
public PickingObjectDTO setDataScad(String dataScad) {

View File

@ -1,16 +1,11 @@
package it.integry.integrywmsnative.gest.vendita.rest.model;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
public class ConsegnaClienteDTO {
public class DocumentoResoDTO {
private String codAnag;
private int counterConsegna;
@ -26,11 +21,13 @@ public class ConsegnaClienteDTO {
private String dataOrd;
private Integer numOrd;
private String dataInizTrasp;
private String gestione;
private String codMdep;
public BindableBoolean selected;
public ConsegnaClienteDTO() {
public DocumentoResoDTO() {
this.selected = new BindableBoolean(false);
}
@ -39,7 +36,7 @@ public class ConsegnaClienteDTO {
return codAnag;
}
public ConsegnaClienteDTO setCodAnag(String codAnag) {
public DocumentoResoDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
@ -48,7 +45,7 @@ public class ConsegnaClienteDTO {
return counterConsegna;
}
public ConsegnaClienteDTO setCounterConsegna(int counterConsegna) {
public DocumentoResoDTO setCounterConsegna(int counterConsegna) {
this.counterConsegna = counterConsegna;
return this;
}
@ -57,7 +54,7 @@ public class ConsegnaClienteDTO {
return codDtip;
}
public ConsegnaClienteDTO setCodDtip(String codDtip) {
public DocumentoResoDTO setCodDtip(String codDtip) {
this.codDtip = codDtip;
return this;
}
@ -70,7 +67,7 @@ public class ConsegnaClienteDTO {
return UtilityDate.recognizeDateWithExceptionHandler(getDataDocS());
}
public ConsegnaClienteDTO setDataDoc(String dataDoc) {
public DocumentoResoDTO setDataDoc(String dataDoc) {
this.dataDoc = dataDoc;
return this;
}
@ -79,7 +76,7 @@ public class ConsegnaClienteDTO {
return serDoc;
}
public ConsegnaClienteDTO setSerDoc(String serDoc) {
public DocumentoResoDTO setSerDoc(String serDoc) {
this.serDoc = serDoc;
return this;
}
@ -88,7 +85,7 @@ public class ConsegnaClienteDTO {
return numDoc;
}
public ConsegnaClienteDTO setNumDoc(int numDoc) {
public DocumentoResoDTO setNumDoc(int numDoc) {
this.numDoc = numDoc;
return this;
}
@ -97,7 +94,7 @@ public class ConsegnaClienteDTO {
return destinatario;
}
public ConsegnaClienteDTO setDestinatario(String destinatario) {
public DocumentoResoDTO setDestinatario(String destinatario) {
this.destinatario = destinatario;
return this;
}
@ -106,7 +103,7 @@ public class ConsegnaClienteDTO {
return indirizzo;
}
public ConsegnaClienteDTO setIndirizzo(String indirizzo) {
public DocumentoResoDTO setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
return this;
}
@ -115,7 +112,7 @@ public class ConsegnaClienteDTO {
return ragSoc;
}
public ConsegnaClienteDTO setRagSoc(String ragSoc) {
public DocumentoResoDTO setRagSoc(String ragSoc) {
this.ragSoc = ragSoc;
return this;
}
@ -124,7 +121,7 @@ public class ConsegnaClienteDTO {
return compilatoDa;
}
public ConsegnaClienteDTO setCompilatoDa(String compilatoDa) {
public DocumentoResoDTO setCompilatoDa(String compilatoDa) {
this.compilatoDa = compilatoDa;
return this;
}
@ -133,7 +130,7 @@ public class ConsegnaClienteDTO {
return rifOrd;
}
public ConsegnaClienteDTO setRifOrd(String rifOrd) {
public DocumentoResoDTO setRifOrd(String rifOrd) {
this.rifOrd = rifOrd;
return this;
}
@ -147,7 +144,7 @@ public class ConsegnaClienteDTO {
}
public ConsegnaClienteDTO setDataOrd(String dataOrd) {
public DocumentoResoDTO setDataOrd(String dataOrd) {
this.dataOrd = dataOrd;
return this;
}
@ -156,7 +153,7 @@ public class ConsegnaClienteDTO {
return numOrd;
}
public ConsegnaClienteDTO setNumOrd(Integer numOrd) {
public DocumentoResoDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
@ -169,7 +166,7 @@ public class ConsegnaClienteDTO {
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
}
public ConsegnaClienteDTO setDataInizTrasp(String dataInizTrasp) {
public DocumentoResoDTO setDataInizTrasp(String dataInizTrasp) {
this.dataInizTrasp = dataInizTrasp;
return this;
}
@ -182,8 +179,26 @@ public class ConsegnaClienteDTO {
return this.selected.get();
}
public ConsegnaClienteDTO setSelected(boolean selected) {
public DocumentoResoDTO setSelected(boolean selected) {
this.selected.set(selected);
return this;
}
public String getGestione() {
return gestione;
}
public DocumentoResoDTO setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public String getCodMdep() {
return codMdep;
}
public DocumentoResoDTO setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
}

View File

@ -341,7 +341,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
// List<OrdineAccettazioneDTO.Riga> foundRows = Stream.of(groupedOrdini)
// .filter(x -> x.getNumOrd() == currentMtbColr.getNumOrd() &&
// x.getRigaOrd() == currentMtbColr.getRigaOrd()&&
// x.getDataOrd().equals(currentMtbColr.getDataOrdD()))
// x.getDataOrdD().equals(currentMtbColr.getDataOrdD()))
// .toList();
//
// if(foundRows != null && foundRows.size() > 0){
@ -903,7 +903,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
cloneMtbColt.setOraFinePrep(new Date());
cloneMtbColt.setOraFinePrep(UtilityDate.getDateInstance());
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
@ -1193,7 +1193,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
.setDescrizione(item.getDescrizioneEstesa())
.setDatetimeRow(new Date());
.setDatetimeRow(UtilityDate.getDateInstance());
if(item.getTempPickData() != null && item.getTempPickData().getSourceMtbColt() != null) {
MtbColt sourceMtbColt = item.getTempPickData().getSourceMtbColt();
@ -1337,7 +1337,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
.setDescrizione(item.getDescrizioneEstesa())
.setDatetimeRow(new Date());
.setDatetimeRow(UtilityDate.getDateInstance());
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);

View File

@ -30,6 +30,7 @@ import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
@ -364,7 +365,7 @@ public class VersamentoMerceViewModel {
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
.setDatetimeRow(new Date());
.setDatetimeRow(UtilityDate.getDateInstance());
onComplete.run(mtbColr);
}, onAbort).show();

View File

@ -367,7 +367,7 @@ public class DialogInputQuantity {
}
if(quantityDTO.expireDate == null && dto.mtbAart.getGgScadPartita() != null && dto.mtbAart.getGgScadPartita() > 0) {
Calendar c = Calendar.getInstance();
Calendar c = UtilityDate.getCalendarInstance();
c.add(Calendar.DATE, dto.mtbAart.getGgScadPartita()); // number of days to add
quantityDTO.expireDate = c.getTime();
@ -610,7 +610,7 @@ public class DialogInputQuantity {
Runnable onTextClicked = () -> {
// Get Current Date
Calendar c = Calendar.getInstance();
Calendar c = UtilityDate.getCalendarInstance();
if(quantityDTO.expireDate != null) {
c.setTime(quantityDTO.expireDate);

View File

@ -5,7 +5,7 @@
<import type="android.view.View" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.ultime_consegne_cliente_picking.UltimeConsegneClientePickingActivity" />
type="it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
@ -13,7 +13,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/full_white"
tools:context=".gest.ultime_consegne_cliente_picking.UltimeConsegneClientePickingActivity">
tools:context=".gest.picking_resi.PickingResiActivity">

View File

@ -5,7 +5,7 @@
<import type="it.integry.integrywmsnative.R" />
<variable
name="consegna"
type="it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO" />
type="it.integry.integrywmsnative.gest.vendita.rest.model.DocumentoResoDTO" />
</data>
<LinearLayout