Modifiche UI dialogInputQuantity V2

This commit is contained in:
Giuseppe Scorrano 2020-03-03 10:21:18 +01:00
parent ce62c57d5d
commit 0704326c8e
9 changed files with 311 additions and 40 deletions

View File

@ -12,6 +12,7 @@ import android.os.Bundle;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import com.tfb.fbtoast.FBToast; import com.tfb.fbtoast.FBToast;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -287,10 +288,14 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
} }
@Override @Override
public void onItemDispatched(MtbAart mtbAart) { public void onItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO(); DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
dialogInputQuantityV2DTO.setMtbAart(mtbAart); .setMtbAart(mtbAart)
.setTotalQtaOrd(totalQtaOrd)
.setTotalNumCnfOrd(totalNumCnfOrd);
DialogInputQuantityV2.make(this, dialogInputQuantityV2DTO).show(); DialogInputQuantityV2
.newInstance(dialogInputQuantityV2DTO)
.show(getSupportFragmentManager(), "tag");
} }
} }

View File

@ -205,8 +205,8 @@ public class SpedizioneViewModel {
for (Listeners listener : mListeners) listener.onFilterChanged(newValue); for (Listeners listener : mListeners) listener.onFilterChanged(newValue);
} }
private void sendOnItemDispatched(MtbAart mtbAart) { private void sendOnItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd) {
for (Listeners listener : mListeners) listener.onItemDispatched(mtbAart); for (Listeners listener : mListeners) listener.onItemDispatched(mtbAart, totalQtaOrd, totalNumCnfOrd);
} }
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
@ -573,6 +573,9 @@ public class SpedizioneViewModel {
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) { public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
BigDecimal totalQtaOrd = pickingObjectDTO.getQtaOrd();
BigDecimal totalNumCnfOrd = pickingObjectDTO.getNumCnfOrd();
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(); AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(); AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
@ -583,14 +586,14 @@ public class SpedizioneViewModel {
}); });
BigDecimal numCnfDaEvadere = pickingObjectDTO.getNumCnfCollo().subtract(numCnfWithdrawRows.getBigDecimalValue()); BigDecimal numCnfDaPrelevare = pickingObjectDTO.getNumCnfCollo().subtract(numCnfWithdrawRows.getBigDecimalValue());
BigDecimal qtaColDaEvadere = pickingObjectDTO.getQtaCollo().subtract(qtaColWithdrawRows.getBigDecimalValue()); BigDecimal qtaColDaPrelevare = pickingObjectDTO.getQtaCollo().subtract(qtaColWithdrawRows.getBigDecimalValue());
if(UtilityBigDecimal.lowerThan(numCnfDaEvadere, BigDecimal.ZERO)) numCnfDaEvadere = BigDecimal.ZERO; if(UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO)) numCnfDaPrelevare = BigDecimal.ZERO;
if(UtilityBigDecimal.lowerThan(qtaColDaEvadere, BigDecimal.ZERO)) qtaColDaEvadere = BigDecimal.ZERO; if(UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO)) qtaColDaPrelevare = BigDecimal.ZERO;
this.sendOnItemDispatched(pickingObjectDTO.getMtbAart()); this.sendOnItemDispatched(pickingObjectDTO.getMtbAart(), totalQtaOrd, totalNumCnfOrd);
} }
@ -652,7 +655,7 @@ public class SpedizioneViewModel {
void onError(Exception ex); void onError(Exception ex);
void onItemDispatched(MtbAart mtbAart); void onItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd);
} }
} }

View File

@ -2,49 +2,58 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.os.Bundle;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.DialogFragment;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
public class DialogInputQuantityV2 { public class DialogInputQuantityV2 extends DialogFragment {
private Dialog mDialog; private Dialog mDialog;
private Context mContext; private Context mContext;
private DialogInputQuantityV2ViewModel mViewModel; private DialogInputQuantityV2ViewModel mViewModel;
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO; private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
public static Dialog make(@NotNull Context context, @NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) { public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
return new DialogInputQuantityV2(context, dialogInputQuantityV2DTO) return new DialogInputQuantityV2(dialogInputQuantityV2DTO);
.mDialog;
} }
private DialogInputQuantityV2(@NotNull Context context, @NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) { private DialogInputQuantityV2(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
this.mContext = context;
this.mDialogInputQuantityV2DTO = dialogInputQuantityV2DTO; this.mDialogInputQuantityV2DTO = dialogInputQuantityV2DTO;
}
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); @Override
DialogInputQuantityV2Binding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_v2, null, false); public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.AppTheme_NewMaterial_Dialog_FullscreenDialog);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
DialogInputQuantityV2Binding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_v2, container, false);
bindings.toolbar.setTitle("Inserimento articolo");
this.mViewModel = new DialogInputQuantityV2ViewModel(); this.mViewModel = new DialogInputQuantityV2ViewModel();
this.mViewModel.setMtbAart(dialogInputQuantityV2DTO.getMtbAart()); this.mViewModel.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart());
this.mViewModel.setTotalNumCnfOrd(mDialogInputQuantityV2DTO.getTotalNumCnfOrd());
this.mViewModel.setTotalQtaOrd(mDialogInputQuantityV2DTO.getTotalQtaOrd());
bindings.setViewmodel(this.mViewModel); bindings.setViewmodel(this.mViewModel);
mDialog = new Dialog(context); return bindings.getRoot();
mDialog.setContentView(bindings.getRoot());
mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
} }
} }

View File

@ -1,11 +1,16 @@
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
public class DialogInputQuantityV2DTO { public class DialogInputQuantityV2DTO {
private MtbAart mtbAart; private MtbAart mtbAart;
private BigDecimal totalQtaOrd;
private BigDecimal totalNumCnfOrd;
public MtbAart getMtbAart() { public MtbAart getMtbAart() {
return mtbAart; return mtbAart;
} }
@ -14,4 +19,22 @@ public class DialogInputQuantityV2DTO {
this.mtbAart = mtbAart; this.mtbAart = mtbAart;
return this; return this;
} }
public BigDecimal getTotalQtaOrd() {
return totalQtaOrd;
}
public DialogInputQuantityV2DTO setTotalQtaOrd(BigDecimal totalQtaOrd) {
this.totalQtaOrd = totalQtaOrd;
return this;
}
public BigDecimal getTotalNumCnfOrd() {
return totalNumCnfOrd;
}
public DialogInputQuantityV2DTO setTotalNumCnfOrd(BigDecimal totalNumCnfOrd) {
this.totalNumCnfOrd = totalNumCnfOrd;
return this;
}
} }

View File

@ -2,12 +2,17 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
public class DialogInputQuantityV2ViewModel { public class DialogInputQuantityV2ViewModel {
public ObservableField<MtbAart> mtbAart = new ObservableField<>(); public ObservableField<MtbAart> mtbAart = new ObservableField<>();
public BigDecimal totalQtaOrd;
public BigDecimal totalNumCnfOrd;
public DialogInputQuantityV2ViewModel() { public DialogInputQuantityV2ViewModel() {
@ -17,4 +22,13 @@ public class DialogInputQuantityV2ViewModel {
this.mtbAart.set(mtbAart); this.mtbAart.set(mtbAart);
} }
public DialogInputQuantityV2ViewModel setTotalQtaOrd(BigDecimal totalQtaOrd) {
this.totalQtaOrd = totalQtaOrd;
return this;
}
public DialogInputQuantityV2ViewModel setTotalNumCnfOrd(BigDecimal totalNumCnfOrd) {
this.totalNumCnfOrd = totalNumCnfOrd;
return this;
}
} }

View File

@ -3,6 +3,8 @@
<data> <data>
<import type="it.integry.integrywmsnative.core.utility.UtilityString" /> <import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="it.integry.integrywmsnative.core.utility.UtilityBigDecimal" />
<import type="android.view.View" /> <import type="android.view.View" />
<variable <variable
@ -10,19 +12,36 @@
type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ViewModel" /> type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ViewModel" />
</data> </data>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
</androidx.appcompat.widget.Toolbar>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="16dp" android:orientation="vertical"
android:orientation="vertical"> app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_margin="8dp">
<RelativeLayout <RelativeLayout
android:id="@+id/dialog_title_panel" android:id="@+id/dialog_title_panel"
@ -94,8 +113,194 @@
</RelativeLayout> </RelativeLayout>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewmodel.mtbAart.descrizioneEstesa}"
android:singleLine="false"
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="RAD 25 D H/L 200 - 10 EL B BIANCO" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_400"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="@{viewmodel.totalNumCnfOrd != null || viewmodel.totalQtaOrd != null ? View.VISIBLE : View.GONE}">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/qta_ord_panel"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="@string/total_ordered"/>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/qta_ord_panel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentEnd="true">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="@{UtilityNumber.decimalToString(viewmodel.totalNumCnfOrd)}"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="4dp"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="@string/unt_mis_col"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="4dp"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="("/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:layout_marginStart="2dp"
android:text="@{UtilityNumber.decimalToString(viewmodel.totalQtaOrd)}"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="2dp"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="@string/unt_mis_col"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="2dp"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text=")"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/qta_da_prelevare"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="@string/to_be_taken"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/qta_da_prelevare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="10"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/qta_disponibile"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="@string/total_available"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/qta_disponibile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="10"/>
</RelativeLayout>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="8dp"
android:weightSum="1">
<com.google.android.material.button.MaterialButton
android:id="@+id/close_lu_btn"
android:layout_weight="0.4"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginStart="0dp"
android:layout_marginEnd="4dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:strokeColor="@color/colorPrimary"
android:text="@string/action_close_ul"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/abort_btn"
android:layout_weight="0.3"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.DangerFull"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:paddingEnd="3dp"
app:layout_constraintTop_toTopOf="parent"
app:icon="@drawable/ic_close_24dp"
app:iconGravity="textStart"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/save_btn"
android:layout_weight="0.3"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginStart="4dp"
android:layout_marginEnd="0dp"
android:paddingEnd="3dp"
app:layout_constraintTop_toTopOf="parent"
app:icon="@drawable/ic_save_24"
app:iconGravity="textStart"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@ -128,6 +128,9 @@
<string name="gross_weight">Peso lordo (KG)</string> <string name="gross_weight">Peso lordo (KG)</string>
<string name="lu_type">Tipo pedana</string> <string name="lu_type">Tipo pedana</string>
<string name="total_ordered">Totale ordinato</string>
<string name="total_available">Totale disponibile</string>
<string name="to_be_taken">Da prelevare</string>
<string name="ordered_abbr">Ord</string> <string name="ordered_abbr">Ord</string>
<string name="to_dispatch_abbr">Da ev</string> <string name="to_dispatch_abbr">Da ev</string>
<string name="available_abbr">Disp</string> <string name="available_abbr">Disp</string>

View File

@ -125,6 +125,9 @@
<string name="gross_weight">Gross weight (KG)</string> <string name="gross_weight">Gross weight (KG)</string>
<string name="lu_type">LU type</string> <string name="lu_type">LU type</string>
<string name="total_ordered">Total ordered</string>
<string name="total_available">Total available</string>
<string name="to_be_taken">To be taken</string>
<string name="ordered_abbr">Ord</string> <string name="ordered_abbr">Ord</string>
<string name="to_dispatch_abbr">To disp</string> <string name="to_dispatch_abbr">To disp</string>
<string name="available_abbr">Avbl</string> <string name="available_abbr">Avbl</string>

View File

@ -21,7 +21,6 @@
<item name="android:fontFamily">@font/google_sans_regular</item> <item name="android:fontFamily">@font/google_sans_regular</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text" parent = "AppTheme.NewMaterial"> <style name="AppTheme.NewMaterial.Text" parent = "AppTheme.NewMaterial">
<item name="android:fontFamily">@font/google_sans_regular</item>
<item name="android:textStyle">normal</item> <item name="android:textStyle">normal</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text.Small" parent = "AppTheme.NewMaterial.Text"> <style name="AppTheme.NewMaterial.Text.Small" parent = "AppTheme.NewMaterial.Text">
@ -84,6 +83,13 @@
</style> </style>
<style name="AppTheme.NewMaterial.Dialog.FullscreenDialog" parent="Theme.AppCompat.Light.DialogWhenLarge">
<item name="android:statusBarColor">@android:color/black</item>
<item name="windowNoTitle">true</item>
<item name="android:windowAnimationStyle">@style/Animation.AppCompat.Dialog</item>
</style>
<style name="AppTheme.NewMaterial.Dialog.DialogTitleText" parent="AppTheme.NewMaterial.Text"> <style name="AppTheme.NewMaterial.Dialog.DialogTitleText" parent="AppTheme.NewMaterial.Text">
<item name="android:textColor">@android:color/black</item> <item name="android:textColor">@android:color/black</item>
<item name="android:textSize">21sp</item> <item name="android:textSize">21sp</item>