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.tfb.fbtoast.FBToast;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@ -287,10 +288,14 @@ public class SpedizioneActivity extends AppCompatActivity implements SpedizioneV
}
@Override
public void onItemDispatched(MtbAart mtbAart) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO();
dialogInputQuantityV2DTO.setMtbAart(mtbAart);
public void onItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.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);
}
private void sendOnItemDispatched(MtbAart mtbAart) {
for (Listeners listener : mListeners) listener.onItemDispatched(mtbAart);
private void sendOnItemDispatched(MtbAart mtbAart, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd) {
for (Listeners listener : mListeners) listener.onItemDispatched(mtbAart, totalQtaOrd, totalNumCnfOrd);
}
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
@ -573,6 +573,9 @@ public class SpedizioneViewModel {
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
BigDecimal totalQtaOrd = pickingObjectDTO.getQtaOrd();
BigDecimal totalNumCnfOrd = pickingObjectDTO.getNumCnfOrd();
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
@ -583,14 +586,14 @@ public class SpedizioneViewModel {
});
BigDecimal numCnfDaEvadere = pickingObjectDTO.getNumCnfCollo().subtract(numCnfWithdrawRows.getBigDecimalValue());
BigDecimal qtaColDaEvadere = pickingObjectDTO.getQtaCollo().subtract(qtaColWithdrawRows.getBigDecimalValue());
BigDecimal numCnfDaPrelevare = pickingObjectDTO.getNumCnfCollo().subtract(numCnfWithdrawRows.getBigDecimalValue());
BigDecimal qtaColDaPrelevare = pickingObjectDTO.getQtaCollo().subtract(qtaColWithdrawRows.getBigDecimalValue());
if(UtilityBigDecimal.lowerThan(numCnfDaEvadere, BigDecimal.ZERO)) numCnfDaEvadere = BigDecimal.ZERO;
if(UtilityBigDecimal.lowerThan(qtaColDaEvadere, BigDecimal.ZERO)) qtaColDaEvadere = BigDecimal.ZERO;
if(UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO)) numCnfDaPrelevare = 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 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.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.DialogFragment;
import org.jetbrains.annotations.NotNull;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
public class DialogInputQuantityV2 {
public class DialogInputQuantityV2 extends DialogFragment {
private Dialog mDialog;
private Context mContext;
private DialogInputQuantityV2ViewModel mViewModel;
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
public static Dialog make(@NotNull Context context, @NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
return new DialogInputQuantityV2(context, dialogInputQuantityV2DTO)
.mDialog;
public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
return new DialogInputQuantityV2(dialogInputQuantityV2DTO);
}
private DialogInputQuantityV2(@NotNull Context context, @NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
this.mContext = context;
private DialogInputQuantityV2(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
this.mDialogInputQuantityV2DTO = dialogInputQuantityV2DTO;
}
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogInputQuantityV2Binding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_v2, null, false);
@Override
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.setMtbAart(dialogInputQuantityV2DTO.getMtbAart());
this.mViewModel.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart());
this.mViewModel.setTotalNumCnfOrd(mDialogInputQuantityV2DTO.getTotalNumCnfOrd());
this.mViewModel.setTotalQtaOrd(mDialogInputQuantityV2DTO.getTotalQtaOrd());
bindings.setViewmodel(this.mViewModel);
mDialog = new Dialog(context);
mDialog.setContentView(bindings.getRoot());
mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
return bindings.getRoot();
}
}

View File

@ -1,11 +1,16 @@
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbAart;
public class DialogInputQuantityV2DTO {
private MtbAart mtbAart;
private BigDecimal totalQtaOrd;
private BigDecimal totalNumCnfOrd;
public MtbAart getMtbAart() {
return mtbAart;
}
@ -14,4 +19,22 @@ public class DialogInputQuantityV2DTO {
this.mtbAart = mtbAart;
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 java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbAart;
public class DialogInputQuantityV2ViewModel {
public ObservableField<MtbAart> mtbAart = new ObservableField<>();
public BigDecimal totalQtaOrd;
public BigDecimal totalNumCnfOrd;
public DialogInputQuantityV2ViewModel() {
@ -17,4 +22,13 @@ public class DialogInputQuantityV2ViewModel {
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>
<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" />
<variable
@ -10,19 +12,36 @@
type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ViewModel" />
</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"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
android:layout_height="match_parent">
<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
android:layout_width="wrap_content"
android:layout_width="0dp"
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
android:id="@+id/dialog_title_panel"
@ -94,8 +113,194 @@
</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.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -128,6 +128,9 @@
<string name="gross_weight">Peso lordo (KG)</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="to_dispatch_abbr">Da ev</string>
<string name="available_abbr">Disp</string>

View File

@ -125,6 +125,9 @@
<string name="gross_weight">Gross weight (KG)</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="to_dispatch_abbr">To disp</string>
<string name="available_abbr">Avbl</string>

View File

@ -21,7 +21,6 @@
<item name="android:fontFamily">@font/google_sans_regular</item>
</style>
<style name="AppTheme.NewMaterial.Text" parent = "AppTheme.NewMaterial">
<item name="android:fontFamily">@font/google_sans_regular</item>
<item name="android:textStyle">normal</item>
</style>
<style name="AppTheme.NewMaterial.Text.Small" parent = "AppTheme.NewMaterial.Text">
@ -84,6 +83,13 @@
</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">
<item name="android:textColor">@android:color/black</item>
<item name="android:textSize">21sp</item>