Finish v1_12_8(137)

This commit is contained in:
Giuseppe Scorrano 2020-05-14 10:10:22 +02:00
commit 974ac63f3c
10 changed files with 251 additions and 99 deletions

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android {
def appVersionCode = 136
def appVersionName = '1.12.7'
def appVersionCode = 137
def appVersionName = '1.12.8'
signingConfigs {
release {

View File

@ -11,6 +11,7 @@ import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import org.jetbrains.annotations.NotNull;
import org.json.JSONObject;
import java.lang.reflect.Type;
import java.math.BigDecimal;
@ -31,8 +32,8 @@ import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.rest.model.RettificaULDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.SingleValueDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@ -269,6 +270,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
.setPartitaMag(original.getPartitaMag())
.setOperation(CommonModelConsts.OPERATION.INSERT);
for (OrdineLavorazioneDTO ordLav : ordini) {
if (ordLav.getQtaColVersamento().getBigDecimal().compareTo(BigDecimal.ZERO) > 0){
MtbColr ordColr = (MtbColr) mtbColrClone.clone();
ordColr.setQtaCol(ordLav.getQtaColVersamento().getBigDecimal());
ordColr.setNumCnf(ordLav.getNumCnfVersamento().getBigDecimal());
@ -276,6 +278,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
.setNumOrd(ordLav.getNumOrdProd())
.setRigaOrd(ordLav.getRigaOrdProd());
newMtbColt.getMtbColr().add(ordColr);
}
}
@ -675,4 +678,38 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
});
}
public static void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColr sourceMtbColr = (MtbColr) sourceMtbColrOriginal.clone();
sourceMtbColr.setRifPartitaMag(null);
sourceMtbColr.setMtbAart(null);
RettificaULDTO rettificaULDTO = new RettificaULDTO()
.setSourceMtbColr(sourceMtbColr)
.setNewNumCnf(newNumCnf)
.setNewQtaCol(newQtaTot);
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.creaRettificaCollo(
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
rettificaULDTO
).enqueue(new Callback<ServiceRESTResponse<JsonObject>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
analyzeAnswer(response, "GetBySSCC", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
if(onFailed != null) onFailed.run(new Exception(t));
}
});
}
}

View File

@ -5,6 +5,7 @@ import com.google.gson.JsonObject;
import java.util.List;
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.rest.model.RettificaULDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.model.MtbColt;
import retrofit2.Call;
@ -24,4 +25,7 @@ public interface ColliMagazzinoRESTConsumerService {
@GET("getColliInBasket")
Call<ServiceRESTResponse<List<MtbColt>>> getColliInBasket(@Query("codMdep") String codMdep);
@POST("creaRettificaCollo")
Call<ServiceRESTResponse<JsonObject>> creaRettificaCollo(@Query("codMdep") String codMdep, @Body RettificaULDTO rettificaULDTO);
}

View File

@ -0,0 +1,39 @@
package it.integry.integrywmsnative.core.rest.model;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbColr;
public class RettificaULDTO {
private MtbColr sourceMtbColr;
private BigDecimal newNumCnf;
private BigDecimal newQtaCol;
public MtbColr getSourceMtbColr() {
return sourceMtbColr;
}
public RettificaULDTO setSourceMtbColr(MtbColr sourceMtbColr) {
this.sourceMtbColr = sourceMtbColr;
return this;
}
public BigDecimal getNewNumCnf() {
return newNumCnf;
}
public RettificaULDTO setNewNumCnf(BigDecimal newNumCnf) {
this.newNumCnf = newNumCnf;
return this;
}
public BigDecimal getNewQtaCol() {
return newQtaCol;
}
public RettificaULDTO setNewQtaCol(BigDecimal newQtaCol) {
this.newQtaCol = newQtaCol;
return this;
}
}

View File

@ -22,6 +22,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
@ -224,7 +225,7 @@ public class ProdRecuperoMaterialeViewModel {
mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
RunnableArgs<MtbColt> saveRunnable = mtbColt -> {
RunnableArgss<MtbColt, Boolean> saveRunnable = (mtbColt, createdLU) -> {
if(mtbColt != null) {
@ -287,7 +288,7 @@ public class ProdRecuperoMaterialeViewModel {
}
};
if(sourceMtbColt != null) saveRunnable.run(sourceMtbColt);
if(sourceMtbColt != null) saveRunnable.run(sourceMtbColt, false);
else DialogScanOrCreateLU.make(mContext, true, false, saveRunnable).show();
}

View File

@ -86,7 +86,7 @@ public class ProdVersamentoMaterialViewModel {
public void openLU() {
DialogScanOrCreateLU.make(mContext, false, false, true, false, mtbColt -> {
DialogScanOrCreateLU.make(mContext, false, false, true, false, (mtbColt, created) -> {
if (mtbColt == null) {
((IPoppableActivity) mContext).pop();
} else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) && mtbColt.getSegno().equals(+1)) {

View File

@ -59,6 +59,10 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
mBinding.toolbar.setTitle(R.string.edit_order);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
if (mOrdine == null) {
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
closeEdit();
}
if (mOrdine.isTransmitted()) {
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
closeEdit();

View File

@ -86,6 +86,8 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
public BindableBoolean isFabVisible = new BindableBoolean();
public BindableBoolean isMtbColtLoaded = new BindableBoolean();
private boolean isCreatedLU = true;
public void init(Activity context, FragmentMainRettificaGiacenzeBinding binding, RettificaGiacenzeHelper helper) {
mContext = context;
@ -93,8 +95,9 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
mHelper = helper;
}
public void setMtbColt(MtbColt mtbColt) {
public void setMtbColt(MtbColt mtbColt, boolean isCreated) {
this.mtbColt.set(mtbColt);
this.isCreatedLU = isCreated;
isFabVisible.set(mtbColt != null);
isMtbColtLoaded.set(mtbColt != null);
@ -420,14 +423,41 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
.setCodMart(mtbAart.getCodMart())
.setPartitaMag(quantityDTO.batchLot.get())
.setDataScadPartita(quantityDTO.expireDate)
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
.setDescrizione(mtbAart.getDescrizioneEstesa())
.setCausale(MtbColr.Causale.RETTIFICA)
.setUtente(SettingsManager.i().user.fullname);
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
if (!isCreatedLU) {
mtbColr
.setQtaCol(BigDecimal.ZERO)
.setNumCnf(BigDecimal.ZERO)
.setDataCollo(mtbColt.get().getDataColloS())
.setNumCollo(mtbColt.get().getNumCollo())
.setGestione(mtbColt.get().getGestione())
.setSerCollo(mtbColt.get().getSerCollo());
ColliMagazzinoRESTConsumer.creaRettificaCollo(mtbColr,
quantityDTO.numCnf.getBigDecimal(),
quantityDTO.qtaTot.getBigDecimal(),
() -> {
mtbColr.setUntMis(mtbAart.getUntMis())
.setMtbAart(mtbAart);
mtbColt.get().getMtbColr().add(mtbColr);
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
resetTexts();
progress.dismiss();
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progress);
});
} else {
mtbColr
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
.setNumCnf(quantityDTO.numCnf.getBigDecimal());
MtbColt cloneMtbColt = (MtbColt) mtbColt.get().clone();
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
@ -460,6 +490,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
UtilityExceptions.defaultException(mContext, ex, progress);
}
});
}
}
@ -480,11 +511,11 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}
public void openLU() {
DialogScanOrCreateLU.make(mContext, true, false, mtbColt -> {
DialogScanOrCreateLU.make(mContext, true, false, (mtbColt, created) -> {
if (mtbColt == null) {
((IPoppableActivity) mContext).pop();
} else {
setMtbColt(mtbColt);
setMtbColt(mtbColt, created);
}
}).show();
}
@ -616,22 +647,47 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
DialogInputQuantity.makeBase(mContext, dto, true, value -> {
BigDecimal qtaCol = value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol());
BigDecimal newQtaCol = value.qtaTot.getBigDecimal(); //.subtract(mtbColrToEditClone.getQtaCol());
BigDecimal newNumCnf = value.numCnf.getBigDecimal(); //.subtract(mtbColrToEditClone.getNumCnf());
if (qtaCol.compareTo(BigDecimal.ZERO) != 0) {
if (newQtaCol.compareTo(BigDecimal.ZERO) != 0) {
if (newNumCnf.compareTo(BigDecimal.ZERO) == 0 && newQtaCol.compareTo(BigDecimal.ZERO) > 0)
newNumCnf = BigDecimal.ONE;
else if (newNumCnf.compareTo(BigDecimal.ZERO) == 0 && newQtaCol.compareTo(BigDecimal.ZERO) < 0)
newNumCnf = new BigDecimal(-1);
BigDecimal numCnf = value.numCnf.getBigDecimal().subtract(mtbColrToEditClone.getNumCnf());
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) > 0)
numCnf = BigDecimal.ONE;
else if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) < 0)
numCnf = new BigDecimal(-1);
mtbColrToEditClone
.setRiga(null);
if (!isCreatedLU) {
BigDecimal finalNewNumCnf = newNumCnf;
ColliMagazzinoRESTConsumer.creaRettificaCollo(
mtbColrToEditClone,
newNumCnf,
newQtaCol,
() -> {
progressDialog.dismiss();
mtbColt.get().getMtbColr().remove(index);
mtbColrToEditClone
.setQtaCol(newQtaCol)
.setNumCnf(finalNewNumCnf)
.setMtbAart(mtbColrToEdit.getMtbAart())
.setOperation(CommonModelConsts.OPERATION.NO_OP);
mtbColt.get().getMtbColr().add(index, mtbColrToEditClone);
}, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)
);
} else {
mtbColrToEditClone
.setRiga(null)
.setDatetimeRow(UtilityDate.getDateInstance())
.setQtaCol(qtaCol)
.setNumCnf(numCnf)
.setQtaCol(newQtaCol)
.setNumCnf(newNumCnf)
.setUtente(SettingsManager.i().user.fullname)
.setCausale(MtbColr.Causale.RETTIFICA)
.setOperation(CommonModelConsts.OPERATION.INSERT);
@ -641,8 +697,6 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
mtbColtClone.getMtbColr().add(mtbColrToEditClone);
mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, valueNewMtbColt -> {
progressDialog.dismiss();
mtbColt.get().getMtbColr().remove(index);
@ -654,9 +708,8 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
.setOperation(CommonModelConsts.OPERATION.NO_OP);
mtbColt.get().getMtbColr().add(index, mtbColrToEditClone);
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
});
}, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog));
}
}
}, null).show();
@ -683,6 +736,18 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
if (!isCreatedLU) {
ColliMagazzinoRESTConsumer.creaRettificaCollo(
mtbColrToDeleteClone,
BigDecimal.ZERO,
BigDecimal.ZERO,
() -> {
progressDialog.dismiss();
mtbColt.get().getMtbColr().remove(mtbColrToDelete);
}, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)
);
} else {
ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, value -> {
progressDialog.dismiss();
mtbColt.get().getMtbColr().remove(mtbColrToDelete);
@ -690,6 +755,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
UtilityExceptions.defaultException(mContext, ex, progressDialog);
});
}
}
private void printCollo(Dialog progress) {

View File

@ -68,7 +68,7 @@ public class VersamentoMerceViewModel {
}
public void openLU() {
DialogScanOrCreateLU.make(mContext, true, false, true, false, mtbColt -> {
DialogScanOrCreateLU.make(mContext, true, false, true, false, (mtbColt, created) -> {
if(mtbColt == null) {
((IPoppableActivity)mContext).pop();
} else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){

View File

@ -21,6 +21,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
@ -45,7 +46,7 @@ public class DialogScanOrCreateLU {
private DialogScanOrCreateLuBinding mBinding;
private RunnableArgs<MtbColt> mOnDialogDismiss;
private RunnableArgss<MtbColt, Boolean> mOnDialogDismiss;
private MtbColt currentMtbColt;
@ -54,19 +55,19 @@ public class DialogScanOrCreateLU {
private boolean mShouldCheckIfExistDoc = true;
public static Dialog make(final Context context, RunnableArgs<MtbColt> onDialogDismiss) {
public static Dialog make(final Context context, RunnableArgss<MtbColt, Boolean> onDialogDismiss) {
return new DialogScanOrCreateLU(context, false, true, true, true, onDialogDismiss).mDialog;
}
public static Dialog make(final Context context, boolean enableCreation, boolean shouldCheckIfExistDoc, RunnableArgs<MtbColt> onDialogDismiss) {
public static Dialog make(final Context context, boolean enableCreation, boolean shouldCheckIfExistDoc, RunnableArgss<MtbColt, Boolean> onDialogDismiss) {
return new DialogScanOrCreateLU(context, false, enableCreation, true, shouldCheckIfExistDoc, onDialogDismiss).mDialog;
}
public static Dialog make(final Context context, boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, RunnableArgs<MtbColt> onDialogDismiss) {
public static Dialog make(final Context context, boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, RunnableArgss<MtbColt, Boolean> onDialogDismiss) {
return new DialogScanOrCreateLU(context, enableBasket, enableCreation, checkResiduo, shouldCheckIfExistDoc, onDialogDismiss).mDialog;
}
private DialogScanOrCreateLU(Context context, boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, RunnableArgs<MtbColt> onDialogDismiss) {
private DialogScanOrCreateLU(Context context, boolean enableBasket, boolean enableCreation, boolean checkResiduo, boolean shouldCheckIfExistDoc, RunnableArgss<MtbColt, Boolean> onDialogDismiss) {
mOnDialogDismiss = null;
currentMtbColt = null;
mShouldCheckResiduo = checkResiduo;
@ -92,14 +93,14 @@ public class DialogScanOrCreateLU {
}
private void init(RunnableArgs<MtbColt> onDialogDismiss) {
private void init(RunnableArgss<MtbColt, Boolean> onDialogDismiss) {
mOnDialogDismiss = onDialogDismiss;
mBinding.createNewLuButton.setOnClickListener(v -> {
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.createColloLavorazione(+1, createdMtbColt -> {
sendMtbColt(createdMtbColt, progressDialog);
sendMtbColt(createdMtbColt, progressDialog, true);
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
});
@ -107,7 +108,7 @@ public class DialogScanOrCreateLU {
mBinding.viewBasket.setOnClickListener(v -> {
DialogBasketLU.make(mContext, mtbColt -> {
sendMtbColt(mtbColt, null);
sendMtbColt(mtbColt, null, false);
}).show();
});
}
@ -122,7 +123,7 @@ public class DialogScanOrCreateLU {
BarcodeManager.removeCallback(barcodeIstanceID);
BarcodeManager.enable();
if(currentMtbColt == null) {
mOnDialogDismiss.run(null);
mOnDialogDismiss.run(null, false);
}
});
@ -162,7 +163,7 @@ public class DialogScanOrCreateLU {
DialogCommon.showNoULFound(mContext, null);
} else if (mtbColtList.size() == 1) {
ColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), mShouldCheckResiduo, false, mtbColt -> {
sendMtbColt(mtbColt, progressDialog);
sendMtbColt(mtbColt, progressDialog, false);
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
@ -192,7 +193,7 @@ public class DialogScanOrCreateLU {
ColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(barcodeScanDTO, GestioneEnum.LAVORAZIONE, createdMtbColt -> {
BarcodeManager.enable();
createdMtbColt.setDisablePrint(true);
sendMtbColt(createdMtbColt, progressDialog);
sendMtbColt(createdMtbColt, progressDialog, true);
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
@ -212,7 +213,7 @@ public class DialogScanOrCreateLU {
BarcodeManager.enable();
mtbColt.setDisablePrint(true);
sendMtbColt(mtbColt, progressDialog);
sendMtbColt(mtbColt, progressDialog, false);
}
}
@ -243,7 +244,7 @@ public class DialogScanOrCreateLU {
.show();
} else {
BarcodeManager.enable();
sendMtbColt(mtbColt, progressDialog);
sendMtbColt(mtbColt, progressDialog, false);
}
@ -281,11 +282,11 @@ public class DialogScanOrCreateLU {
null, null).show();
}
private void sendMtbColt(MtbColt mtbColtToSend, Dialog progressDialog) {
private void sendMtbColt(MtbColt mtbColtToSend, Dialog progressDialog, boolean created) {
currentMtbColt = mtbColtToSend;
if(progressDialog != null) progressDialog.dismiss();
mDialog.dismiss();
mOnDialogDismiss.run(mtbColtToSend);
mOnDialogDismiss.run(mtbColtToSend, created);
}
}