Fix su DialogInputQuantity.
Fix su qtaDisponibile in Vendita.
This commit is contained in:
parent
af815e87f9
commit
eee0567d71
@ -4,7 +4,6 @@ import com.annimon.stream.Stream;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
@ -16,7 +15,6 @@ import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
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.model.MtbDepo;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
@ -270,7 +268,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
||||
MtbColr newMtbColr = new MtbColr();
|
||||
|
||||
newMtbColr.setNumCollo(mtbColrToDelete.getNumCollo());
|
||||
newMtbColr.setDataCollo(mtbColrToDelete.getDataCollo());
|
||||
newMtbColr.setDataCollo(mtbColrToDelete.getDataColloS());
|
||||
newMtbColr.setSerCollo(mtbColrToDelete.getSerCollo());
|
||||
newMtbColr.setGestione(mtbColrToDelete.getGestione());
|
||||
newMtbColr.setRiga(mtbColrToDelete.getRiga());
|
||||
|
||||
@ -252,10 +252,20 @@ public class MtbColr extends EntityBase implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataCollo() {
|
||||
public String getDataColloS() {
|
||||
return dataCollo;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
public MtbColr setDataCollo(String dataCollo) {
|
||||
this.dataCollo = dataCollo;
|
||||
return this;
|
||||
@ -381,9 +391,14 @@ public class MtbColr extends EntityBase implements Parcelable {
|
||||
return dataColloRif;
|
||||
}
|
||||
|
||||
public Date getDataColloRifD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataColloRifS());
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
public MtbColr setDataColloRif(String dataColloRif) {
|
||||
|
||||
@ -249,9 +249,14 @@ public class PickingObjectDTO implements Parcelable {
|
||||
return dataCollo;
|
||||
}
|
||||
|
||||
public Date getDataColloD() throws ParseException {
|
||||
public Date getDataColloD() {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataColloS());
|
||||
try {
|
||||
return sdf.parse(getDataColloS());
|
||||
} catch (ParseException e) {
|
||||
UtilityLogger.errorMe(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public String getDataColloHuman() {
|
||||
|
||||
@ -21,7 +21,6 @@ import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.REST.model.Ean128Model;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
@ -33,9 +32,7 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||
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.UtilityLogger;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
@ -822,25 +819,47 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
(x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag())))
|
||||
.toList();
|
||||
|
||||
float qtaEvasaInMtbColr = 0;
|
||||
float qtaEvasaTotaleInMtbColr = 0;
|
||||
for (MtbColr mtbColr : filteredMtbColrs) {
|
||||
qtaEvasaInMtbColr += mtbColr.getQtaCol().floatValue();
|
||||
qtaEvasaTotaleInMtbColr += mtbColr.getQtaCol().floatValue();
|
||||
}
|
||||
float qtaEvasaTotale = qtaEvasaTotaleInMtbColr;
|
||||
|
||||
float qtaEvasa = qtaEvasaInMtbColr;
|
||||
|
||||
BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasa));
|
||||
filteredMtbColrs = Stream.of(currentMtbColrs).filter(
|
||||
x ->
|
||||
x.getGestioneRif() != null && x.getGestioneRif().equalsIgnoreCase(item.getGestione()) &&
|
||||
Objects.equals(x.getNumColloRif(), item.getNumCollo()) &&
|
||||
x.getSerColloRif() != null && x.getSerColloRif().equalsIgnoreCase(item.getSerCollo()) &&
|
||||
x.getDataColloRifD() != null && x.getDataColloRifD().equals(item.getDataColloD())
|
||||
).toList();
|
||||
|
||||
float qtaEvasaCurrentULInMtbColr = 0;
|
||||
for (MtbColr mtbColr : filteredMtbColrs) {
|
||||
qtaEvasaCurrentULInMtbColr += mtbColr.getQtaCol().floatValue();
|
||||
}
|
||||
float qtaEvasaCurrentUL = qtaEvasaCurrentULInMtbColr;
|
||||
|
||||
|
||||
|
||||
|
||||
BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasaTotale));
|
||||
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;
|
||||
|
||||
BigDecimal qtaDisponibile = item.getQtaCollo().subtract(new BigDecimal(qtaEvasaCurrentUL));
|
||||
if(qtaDisponibile.floatValue() < 0) qtaDisponibile = BigDecimal.ZERO;
|
||||
|
||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||
.setBatchLot(item.getPartitaMag())
|
||||
.setCodArtFor(item.getCodArtFor())
|
||||
.setMtbAart(item.getMtbAart())
|
||||
.setQtaOrd(item.getQtaOrd())
|
||||
.setQtaDaEvadere(qtaDaEvadere)
|
||||
.setQtaEvasa(new BigDecimal(qtaEvasa))
|
||||
.setQtaDisponibile(qtaDisponibile)
|
||||
.setQtaTot(qtaDisponibile)
|
||||
.setQtaEvasa(new BigDecimal(qtaEvasaTotale))
|
||||
.setCanPartitaMagBeChanged(false)
|
||||
.setMaxQta(item.getQtaOrd());
|
||||
.setMaxQta(qtaDisponibile);
|
||||
|
||||
if(item.getTempPickData() != null) {
|
||||
PickingObjectDTO.PickData tmpPickData = item.getTempPickData();
|
||||
@ -883,7 +902,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
}
|
||||
|
||||
DialogInputQuantity.makeBase(mActivity, dto, true, value -> onOrdineRowDispatched(item, value)).show();
|
||||
DialogInputQuantity.makeBase(mActivity, dto, false, value -> onOrdineRowDispatched(item, value)).show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -54,6 +54,7 @@ public class DialogInputQuantity {
|
||||
private MtbAart mtbAart;
|
||||
private String batchLot;
|
||||
private BigDecimal qtaDaEvadere;
|
||||
private BigDecimal qtaDisponibile;
|
||||
private BigDecimal qtaEvasa;
|
||||
private BigDecimal qtaOrd;
|
||||
private BigDecimal qtaTot;
|
||||
@ -93,6 +94,15 @@ public class DialogInputQuantity {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaDisponibile() {
|
||||
return qtaDisponibile;
|
||||
}
|
||||
|
||||
public DTO setQtaDisponibile(BigDecimal qtaDisponibile) {
|
||||
this.qtaDisponibile = qtaDisponibile;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaOrd() {
|
||||
return qtaOrd;
|
||||
}
|
||||
@ -282,14 +292,21 @@ public class DialogInputQuantity {
|
||||
if(dto.getQtaTot() != null) quantityDTO.qtaTot.set(dto.getQtaTot().floatValue());
|
||||
if(dto.getMaxQta() != null) quantityDTO.maxQta = dto.getMaxQta().floatValue();
|
||||
|
||||
float qtaDisponibile = dto.getQtaDisponibile() != null ? dto.getQtaDisponibile().floatValue() : 0f;
|
||||
if (qtaDisponibile < 0) {
|
||||
currentBinding.layoutQtaDisponibile.setVisibility(View.GONE);
|
||||
qtaDisponibile = 0;
|
||||
}
|
||||
if(qtaDisponibile > 0) quantityDTO.qtaDisponibile.set(qtaDisponibile);
|
||||
|
||||
float qtaDaEvadere = dto.qtaDaEvadere != null ? dto.qtaDaEvadere.floatValue() : 0f;
|
||||
if (qtaDaEvadere < 0) {
|
||||
currentBinding.layoutQtaDaEvadere.setVisibility(View.GONE);
|
||||
qtaDaEvadere = 0;
|
||||
}
|
||||
|
||||
quantityDTO.qtaEvasa.set(dto.qtaEvasa != null ? dto.qtaEvasa.floatValue() : null);
|
||||
if(qtaDaEvadere > 0) quantityDTO.qtaDaEvadere.set(qtaDaEvadere);
|
||||
quantityDTO.qtaEvasa.set(dto.qtaEvasa != null ? dto.qtaEvasa.floatValue() : null);
|
||||
|
||||
quantityDTO.batchLot.set(dto.batchLot);
|
||||
if(quantityDTO.qtaCnf.get(false) == null) {
|
||||
@ -440,19 +457,7 @@ public class DialogInputQuantity {
|
||||
|
||||
quantityDTO.blockedNumDiCnf.set(!(quantityDTO.numCnf.get(true) == 0 || quantityDTO.numCnf.get().toString() == ""));
|
||||
|
||||
Log.d("Color", txlInputNumDiCnf.getEditText().getTextColors().toString());
|
||||
|
||||
if(quantityDTO.blockedNumDiCnf.get()){
|
||||
txlInputNumDiCnf.setErrorEnabled(true);
|
||||
txlInputNumDiCnf.setError(" ");
|
||||
txlInputNumDiCnf.getEditText().setTextColor(ContextCompat.getColor(MainApplication.Context, R.color.red_600));
|
||||
} else {
|
||||
txlInputNumDiCnf.setErrorEnabled(false);
|
||||
txlInputNumDiCnf.setError(null);
|
||||
txlInputNumDiCnf.getEditText().setTextColor(originalColorStateList);
|
||||
}
|
||||
|
||||
|
||||
toggleTextInputLayoutError(txlInputNumDiCnf, quantityDTO.blockedNumDiCnf.get());
|
||||
|
||||
if (!quantityDTO.blockedQtaTot.get()) {
|
||||
|
||||
@ -487,15 +492,7 @@ public class DialogInputQuantity {
|
||||
|
||||
quantityDTO.blockedQtaPerCnf.set(!(quantityDTO.qtaCnf.get(true) == 0 || quantityDTO.qtaCnf.get().toString() == ""));
|
||||
|
||||
if(quantityDTO.blockedQtaPerCnf.get()){
|
||||
txlInputQtaPerCnf.setErrorEnabled(true);
|
||||
txlInputQtaPerCnf.setError(" ");
|
||||
txlInputQtaPerCnf.getEditText().setTextColor(ContextCompat.getColor(MainApplication.Context, R.color.red_600));
|
||||
} else {
|
||||
txlInputQtaPerCnf.setErrorEnabled(false);
|
||||
txlInputQtaPerCnf.setError(null);
|
||||
txlInputQtaPerCnf.getEditText().setTextColor(originalColorStateList);
|
||||
}
|
||||
toggleTextInputLayoutError(txlInputQtaPerCnf, quantityDTO.blockedQtaPerCnf.get());
|
||||
|
||||
if (!quantityDTO.blockedQtaTot.get()) {
|
||||
|
||||
@ -530,15 +527,7 @@ public class DialogInputQuantity {
|
||||
|
||||
quantityDTO.blockedQtaTot.set(!(quantityDTO.qtaTot.get(true) == 0 || quantityDTO.qtaTot.get().toString() == ""));
|
||||
|
||||
if(quantityDTO.blockedQtaTot.get()){
|
||||
txlInputQtaTot.setErrorEnabled(true);
|
||||
txlInputQtaTot.setError(" ");
|
||||
txlInputQtaTot.getEditText().setTextColor(ContextCompat.getColor(MainApplication.Context, R.color.red_600));
|
||||
} else {
|
||||
txlInputQtaTot.setErrorEnabled(false);
|
||||
txlInputQtaTot.setError(null);
|
||||
txlInputQtaTot.getEditText().setTextColor(originalColorStateList);
|
||||
}
|
||||
toggleTextInputLayoutError(txlInputQtaTot, quantityDTO.blockedQtaTot.get());
|
||||
|
||||
if(!quantityDTO.blockedQtaPerCnf.get()){
|
||||
|
||||
@ -563,6 +552,24 @@ public class DialogInputQuantity {
|
||||
}
|
||||
|
||||
|
||||
private void toggleTextInputLayoutError(TextInputLayout textInputLayout, boolean isError) {
|
||||
if(isError){
|
||||
textInputLayout.setErrorEnabled(true);
|
||||
textInputLayout.setError(" ");
|
||||
textInputLayout.getEditText().setTextColor(ContextCompat.getColor(MainApplication.Context, R.color.red_600));
|
||||
textInputLayout.setHintTextAppearance(R.style.ErrorFloatingLabel);
|
||||
|
||||
if (textInputLayout.getChildCount() == 2) {
|
||||
textInputLayout.getChildAt(1).setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
textInputLayout.setErrorEnabled(false);
|
||||
textInputLayout.setError(null);
|
||||
textInputLayout.getEditText().setTextColor(originalColorStateList);
|
||||
textInputLayout.setHintTextAppearance(R.style.NormalFloatingLabel);
|
||||
}
|
||||
}
|
||||
|
||||
private void initDatePicker(Context context, QuantityDTO quantityDTO, AppCompatTextView textInputLayout) {
|
||||
quantityDTO.expireDateString.set(scadenzaString);
|
||||
|
||||
|
||||
@ -24,6 +24,7 @@ public class QuantityDTO {
|
||||
|
||||
public BindableFloat qtaEvasa = new BindableFloat();
|
||||
public BindableFloat qtaDaEvadere = new BindableFloat();
|
||||
public BindableFloat qtaDisponibile = new BindableFloat();
|
||||
|
||||
|
||||
|
||||
|
||||
@ -135,27 +135,70 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_qta_da_evadere"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_qta_da_evadere"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/to_dispatch"
|
||||
android:textSize="16sp"
|
||||
tools:text="Da evadere" />
|
||||
android:orientation="horizontal">
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/to_dispatch"
|
||||
android:textSize="16sp"
|
||||
tools:text="Da evadere" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text='@{String.format("%.2f", quantityViewModel.qtaDaEvadere.get())}'
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingLeft="4dp"
|
||||
tools:text="1200" />
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_qta_disponibile"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text='@{String.format("%.2f", quantityViewModel.qtaDaEvadere.get())}'
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingLeft="4dp"
|
||||
tools:text="1200" />
|
||||
android:layout_marginStart="12dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="("
|
||||
android:textSize="16sp" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/available"
|
||||
android:textSize="16sp"
|
||||
tools:text="Disponibile" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text='@{String.format("%.2f", quantityViewModel.qtaDisponibile.get())}'
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingStart="4dp"
|
||||
tools:text="1200" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text=")"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<android.support.constraint.ConstraintLayout
|
||||
|
||||
@ -93,6 +93,7 @@
|
||||
|
||||
<string name="ordered">Ordinati</string>
|
||||
<string name="to_dispatch">Da evadere</string>
|
||||
<string name="available">Disponibile</string>
|
||||
|
||||
<string name="batch_lot">Lotto</string>
|
||||
<string name="batch_lot_text"><![CDATA[Lotto: <b>%s</b>]]></string>
|
||||
|
||||
@ -99,6 +99,7 @@
|
||||
|
||||
<string name="ordered">Ordered</string>
|
||||
<string name="to_dispatch">To dispatch</string>
|
||||
<string name="available">Available</string>
|
||||
|
||||
<string name="batch_lot">Batch lot</string>
|
||||
<string name="batch_lot_text"><![CDATA[Batch lot: <b>%s</b>]]></string>
|
||||
|
||||
@ -25,6 +25,22 @@
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="ErrorFloatingLabel" parent="@android:style/TextAppearance">
|
||||
<item name="android:textColor">@color/red_500</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="colorControlNormal">@color/red_500</item>
|
||||
<item name="colorControlActivated">@color/red_500</item>
|
||||
<item name="colorControlHighlight">@color/red_500</item>
|
||||
</style>
|
||||
<style name="NormalFloatingLabel" parent="@android:style/TextAppearance">
|
||||
<item name="android:textColor">@color/colorPrimary</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="colorControlNormal">@color/colorPrimary</item>
|
||||
<item name="colorControlActivated">@color/colorPrimary</item>
|
||||
<item name="colorControlHighlight">@color/colorPrimary</item>
|
||||
</style>
|
||||
|
||||
<!--<style name="AppTheme.AppCompat.Dark.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">-->
|
||||
<!--<item name="colorPrimary">@color/colorPrimary</item>-->
|
||||
<!--<item name="colorPrimaryDark">@color/colorPrimaryDark</item>-->
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user