vario
This commit is contained in:
parent
5bcbfaf206
commit
d1f2b808c7
6
.idea/assetWizardSettings.xml
generated
6
.idea/assetWizardSettings.xml
generated
@ -18,7 +18,7 @@
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/action/ic_info_black_24dp.xml" />
|
||||
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/navigation/ic_close_black_24dp.xml" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
@ -29,11 +29,9 @@
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="color" value="ffffff" />
|
||||
<entry key="height" value="78" />
|
||||
<entry key="outputName" value="ic_info_78dp" />
|
||||
<entry key="outputName" value="ic_close_new_24dp" />
|
||||
<entry key="overrideSize" value="true" />
|
||||
<entry key="sourceFile" value="C:\Users\GiuseppeS" />
|
||||
<entry key="width" value="78" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
|
||||
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
8
.idea/kotlinc.xml
generated
Normal file
8
.idea/kotlinc.xml
generated
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KotlinCommonCompilerArguments">
|
||||
<option name="errors">
|
||||
<ArgumentParseErrors />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@ -1,4 +1,5 @@
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
android {
|
||||
compileSdkVersion 27
|
||||
@ -6,7 +7,7 @@ android {
|
||||
defaultConfig {
|
||||
applicationId "it.integry.integrywmsnative"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 25
|
||||
targetSdkVersion 27
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
@ -29,6 +30,9 @@ dependencies {
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
})
|
||||
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
|
||||
|
||||
implementation 'com.android.support:appcompat-v7:27.1.1'
|
||||
implementation 'com.android.support:support-v4:27.1.1'
|
||||
implementation 'com.android.support:design:27.1.1'
|
||||
@ -64,14 +68,17 @@ dependencies {
|
||||
|
||||
implementation 'de.hdodenhof:circleimageview:2.2.0'
|
||||
|
||||
// implementation 'com.mahc.custombottomsheetbehavior:googlemaps-like:0.9.1'
|
||||
// implementation 'com.sothree.slidinguppanel:library:3.4.0'
|
||||
|
||||
implementation 'com.fxn769:stash:1.2'
|
||||
|
||||
implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2'
|
||||
implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
|
||||
|
||||
|
||||
implementation 'com.fede987:status-bar-alert:1.0.1'
|
||||
|
||||
|
||||
testImplementation 'junit:junit:4.12'
|
||||
}
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
@ -26,6 +26,7 @@
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity"
|
||||
android:windowSoftInputMode="adjustNothing"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<activity android:name=".gest.login.LoginActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"></activity>
|
||||
</application>
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
package it.integry.integrywmsnative;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.text.SpannableString;
|
||||
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
@ -10,6 +12,9 @@ import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||
|
||||
public class MainApplication extends Application {
|
||||
|
||||
public static Resources res;
|
||||
public static Context Context;
|
||||
|
||||
// Called when the application is starting, before any other application objects have been created.
|
||||
// Overriding this method is totally optional!
|
||||
@Override
|
||||
@ -19,6 +24,9 @@ public class MainApplication extends Application {
|
||||
|
||||
SettingsManager.init(this);
|
||||
|
||||
res = getResources();
|
||||
Context = this;
|
||||
|
||||
}
|
||||
|
||||
// Called by the system when the device configuration changes while your component is running.
|
||||
|
||||
@ -8,6 +8,12 @@ import org.parceler.Parcel;
|
||||
public class BindableBoolean extends BaseObservable {
|
||||
boolean mValue;
|
||||
|
||||
public BindableBoolean() {}
|
||||
|
||||
public BindableBoolean(boolean startValue) {
|
||||
this.mValue = startValue;
|
||||
}
|
||||
|
||||
public boolean get() {
|
||||
return mValue;
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package it.integry.integrywmsnative.core.di;
|
||||
|
||||
import android.databinding.BaseObservable;
|
||||
|
||||
import org.parceler.Parcel;
|
||||
|
||||
@Parcel
|
||||
public class BindableFloat extends BaseObservable {
|
||||
Float value;
|
||||
|
||||
public Float get() {
|
||||
return value == null ? 0 : value;
|
||||
}
|
||||
|
||||
public Float get(boolean defaultIfNull) {
|
||||
return value == null && defaultIfNull ? 0 : value;
|
||||
}
|
||||
|
||||
public void set(Float value) {
|
||||
if (!Objects.equals(this.value, value)) {
|
||||
this.value = value;
|
||||
notifyChange();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return value == null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -4,12 +4,18 @@ import android.databinding.BindingAdapter;
|
||||
import android.databinding.BindingConversion;
|
||||
import android.support.design.widget.TextInputEditText;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.EditText;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.util.Locale;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
|
||||
@ -67,6 +73,45 @@ public class Converters {
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter("app:binding")
|
||||
public static void bindTextInputEditText(TextInputEditText view, final BindableFloat bindableFloat) {
|
||||
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.getDefault());
|
||||
otherSymbols.setDecimalSeparator('.');
|
||||
otherSymbols.setGroupingSeparator(',');
|
||||
|
||||
|
||||
final DecimalFormat decimalFormat = new DecimalFormat();
|
||||
decimalFormat.setMaximumFractionDigits(2);
|
||||
decimalFormat.setDecimalFormatSymbols(otherSymbols);
|
||||
|
||||
Pair<BindableFloat, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
|
||||
if (pair == null || pair.first != bindableFloat) {
|
||||
if (pair != null) {
|
||||
view.removeTextChangedListener(pair.second);
|
||||
}
|
||||
TextWatcherAdapter watcher = new TextWatcherAdapter() {
|
||||
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
try {
|
||||
if(s.toString().trim().isEmpty()){
|
||||
bindableFloat.set(null);
|
||||
} else bindableFloat.set(decimalFormat.parse(s.toString()).floatValue());
|
||||
} catch (Exception ex){
|
||||
Log.e("FloatFormat", ex.getMessage());
|
||||
}
|
||||
}
|
||||
};
|
||||
view.setTag(R.id.bound_observable, new Pair<>(bindableFloat, watcher));
|
||||
view.addTextChangedListener(watcher);
|
||||
}
|
||||
|
||||
Float newValue = bindableFloat.get();
|
||||
if (!view.getText().toString().equals(decimalFormat.format(newValue))) {
|
||||
|
||||
view.setText(decimalFormat.format(newValue));
|
||||
view.setSelection(view.getText().toString().length());
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter("app:binding")
|
||||
public static void bindRadioGroup(RadioGroup view, final BindableBoolean bindableBoolean) {
|
||||
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
||||
|
||||
@ -9,6 +9,7 @@ public class CommonModelConsts {
|
||||
public static String SELECT = "SELECT";
|
||||
public static String SELECT_OBJECT = "SELECT_OBJECT";
|
||||
public static String SUBSTITUTE = "SUBSTITUTE";
|
||||
public static String NO_OP = "NO_OP";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package it.integry.integrywmsnative.core.model;
|
||||
|
||||
public abstract class EntityBase {
|
||||
import android.util.Log;
|
||||
|
||||
public abstract class EntityBase implements Cloneable{
|
||||
|
||||
public String operation;
|
||||
public String type;
|
||||
@ -23,4 +25,17 @@ public abstract class EntityBase {
|
||||
this.onlyPkMaster = onlyPkMaster;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityBase clone(){
|
||||
EntityBase clone = null;
|
||||
|
||||
try {
|
||||
clone = (EntityBase) super.clone();
|
||||
} catch (CloneNotSupportedException ex){
|
||||
Log.e("CloneError", ex.getMessage());
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,6 +92,16 @@ public class MtbAart implements Parcelable{
|
||||
|
||||
public MtbAart(){}
|
||||
|
||||
|
||||
public boolean isFlagTracciabilita() {
|
||||
return flagTracciabilita != null && flagTracciabilita.equalsIgnoreCase("S");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected MtbAart(Parcel in) {
|
||||
codMart = in.readString();
|
||||
descrizione = in.readString();
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class MtbColr extends EntityBase{
|
||||
|
||||
|
||||
private Date dataCollo;
|
||||
private String gestione;
|
||||
private String serCollo;
|
||||
private Integer numCollo;
|
||||
@ -20,19 +21,19 @@ public class MtbColr extends EntityBase{
|
||||
private String gestioneRif;
|
||||
private String serColloRif;
|
||||
private String note;
|
||||
private Date dataOrd;
|
||||
private Date dataColloRif;
|
||||
private String dataOrd;
|
||||
private String dataColloRif;
|
||||
private BigDecimal qtaCnf;
|
||||
private BigDecimal qtaCol;
|
||||
private Integer numOrd;
|
||||
private Integer numEtich;
|
||||
private Integer numColloRif;
|
||||
private Date datetimeRow;
|
||||
private String datetimeRow;
|
||||
private String codJcom;
|
||||
private BigDecimal numCnf;
|
||||
private String insPartitaMag;
|
||||
private String mtbPartitaMag_descrizione;
|
||||
private Date dataScadPartita;
|
||||
private String dataScadPartita;
|
||||
private String descrizione;
|
||||
|
||||
|
||||
@ -40,14 +41,6 @@ public class MtbColr extends EntityBase{
|
||||
type = "mtb_colr";
|
||||
}
|
||||
|
||||
public Date getDataCollo() {
|
||||
return dataCollo;
|
||||
}
|
||||
|
||||
public MtbColr setDataCollo(Date dataCollo) {
|
||||
this.dataCollo = dataCollo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
@ -166,24 +159,46 @@ public class MtbColr extends EntityBase{
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public String getDataOrdS() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public MtbColr setDataOrd(Date dataOrd) {
|
||||
public Date getDataOrdD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataOrdS());
|
||||
}
|
||||
|
||||
public MtbColr setDataOrd(String dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataColloRif() {
|
||||
public MtbColr setDataOrd(Date dataOrd) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.dataOrd = sdf.format(dataOrd);
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataColloRifS() {
|
||||
return dataColloRif;
|
||||
}
|
||||
|
||||
public MtbColr setDataColloRif(Date dataColloRif) {
|
||||
public Date getDataColloRifD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataColloRifS());
|
||||
}
|
||||
|
||||
public MtbColr setDataColloRif(String dataColloRif) {
|
||||
this.dataColloRif = dataColloRif;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbColr setDataColloRif(Date dataColloRif) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.dataColloRif = sdf.format(dataColloRif);
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
@ -229,15 +244,35 @@ public class MtbColr extends EntityBase{
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDatetimeRow() {
|
||||
|
||||
|
||||
|
||||
public String getDatetimeRowS() {
|
||||
return datetimeRow;
|
||||
}
|
||||
|
||||
public MtbColr setDatetimeRow(Date datetimeRow) {
|
||||
public Date getDatetimeRowD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDatetimeRowS());
|
||||
}
|
||||
|
||||
public MtbColr setDatetimeRow(String datetimeRow) {
|
||||
this.datetimeRow = datetimeRow;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbColr setDatetimeRow(Date datetimeRow) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.datetimeRow = sdf.format(datetimeRow);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public String getCodJcom() {
|
||||
return codJcom;
|
||||
}
|
||||
@ -274,15 +309,33 @@ public class MtbColr extends EntityBase{
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataScadPartita() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public String getDataScadPartitaS() {
|
||||
return dataScadPartita;
|
||||
}
|
||||
|
||||
public MtbColr setDataScadPartita(Date dataScadPartita) {
|
||||
public Date getDataScadPartitaD() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
return sdf.parse(getDataScadPartitaS());
|
||||
}
|
||||
|
||||
public MtbColr setDataScadPartita(String dataScadPartita) {
|
||||
this.dataScadPartita = dataScadPartita;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbColr setDataScadPartita(Date dataScadPartita) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.dataScadPartita = sdf.format(dataScadPartita);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v4.util.Pools;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
@ -17,6 +18,7 @@ import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter;
|
||||
|
||||
/**
|
||||
* Created by GiuseppeS on 06/03/2018.
|
||||
@ -28,6 +30,9 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
|
||||
private List<OrdineAccettazioneGroupedInevasoDTO> mDataset;
|
||||
private ICheckBoxCallback mCheckBoxCallback;
|
||||
|
||||
private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000);
|
||||
private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000);
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
// each data item is just a string in this case
|
||||
private TextView mTextViewGroupHeader;
|
||||
@ -95,20 +100,17 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
|
||||
for (int i = 0; i < subGroup.size(); i++) {
|
||||
final OrdineAccettazioneGroupedInevasoDTO.Ordine ordine = subGroup.get(i);
|
||||
|
||||
//if(i == 0) {
|
||||
ordine.checkBoxCallback = new ArrayList<>();
|
||||
//}
|
||||
ordine.checkBoxCallback = new ArrayList<>();
|
||||
|
||||
boolean isCreatedNew = false;
|
||||
|
||||
if(holder.views.size() <= i){
|
||||
holder.views.add(LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.accettazione_main_list_group_model, holder.mLinearLayoutGroupItemContainer, false));
|
||||
isCreatedNew = true;
|
||||
View groupModelViewPool = (View) sPool.acquire();
|
||||
if(groupModelViewPool == null){
|
||||
groupModelViewPool = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.accettazione_main_list_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
||||
}
|
||||
|
||||
View groupModelView = groupModelViewPool;
|
||||
holder.views.add(groupModelView);
|
||||
|
||||
View groupModelView = holder.views.get(i);
|
||||
|
||||
groupModelView.setVisibility(View.VISIBLE);
|
||||
|
||||
@ -145,8 +147,16 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
|
||||
clientLinearLayout.removeAllViews();
|
||||
|
||||
for (int k = 0; k < subGroupClienti.size(); k++) {
|
||||
View groupClienteModelView = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.accettazione_main_list_group_clienti, clientLinearLayout, false);
|
||||
|
||||
|
||||
View groupClienteModelViewPool = (View) sPoolClienti.acquire();
|
||||
if(groupClienteModelViewPool == null){
|
||||
groupClienteModelViewPool = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.accettazione_main_list_group_clienti, clientLinearLayout, false);
|
||||
}
|
||||
|
||||
View groupClienteModelView = groupClienteModelViewPool;
|
||||
|
||||
|
||||
TextView clienteComm = groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_comm);
|
||||
String clienteText;
|
||||
@ -164,15 +174,35 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAc
|
||||
clientLinearLayout.addView(groupClienteModelView);
|
||||
}
|
||||
|
||||
if(isCreatedNew) {
|
||||
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(ViewHolder holder){
|
||||
if(holder != null){
|
||||
for(int i = 0; i < holder.views.size(); i++){
|
||||
View groupModelView = holder.views.get(i);
|
||||
|
||||
LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_clienti_ord);
|
||||
|
||||
for(int k = 0; k < clientLinearLayout.getChildCount(); k++){
|
||||
View cliente = clientLinearLayout.getChildAt(k);
|
||||
((ViewGroup) cliente.getParent()).removeView(cliente);
|
||||
|
||||
sPoolClienti.release(cliente);
|
||||
}
|
||||
|
||||
((ViewGroup) groupModelView.getParent()).removeView(groupModelView);
|
||||
sPool.release(groupModelView);
|
||||
}
|
||||
|
||||
holder.views.clear();
|
||||
}
|
||||
|
||||
for(int i = subGroup.size(); i < holder.views.size(); i++){
|
||||
holder.views.get(i).setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
// Return the size of your dataset (invoked by the layout manager)
|
||||
|
||||
@ -2,8 +2,11 @@ package it.integry.integrywmsnative.gest.accettazione.dto;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.Log;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
@ -34,6 +37,7 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
||||
public int rigaOrd;
|
||||
public String codJcom;
|
||||
public String ragSocCom;
|
||||
public String descrizioneCommessa;
|
||||
public MtbAart mtbAart;
|
||||
public PickingObjectDTO[] colliAssociati;
|
||||
public boolean hidden = false;
|
||||
@ -52,6 +56,21 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
||||
return this.qtaOrd - this.qtaRiservate;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
Date dataOrd = null;
|
||||
|
||||
try{
|
||||
dataOrd = sdf.parse(this.dataOrd);
|
||||
} catch (Exception ex) {
|
||||
Log.e("Parsing date", ex.getMessage());
|
||||
}
|
||||
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Riga(){}
|
||||
|
||||
protected Riga(Parcel in) {
|
||||
@ -60,6 +79,7 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
||||
rigaOrd = in.readInt();
|
||||
codJcom = in.readString();
|
||||
ragSocCom = in.readString();
|
||||
descrizioneCommessa = in.readString();
|
||||
mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader());
|
||||
hidden = in.readByte() != 0x00;
|
||||
partitaMag = in.readString();
|
||||
@ -94,6 +114,7 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
||||
dest.writeInt(rigaOrd);
|
||||
dest.writeString(codJcom);
|
||||
dest.writeString(ragSocCom);
|
||||
dest.writeString(descrizioneCommessa);
|
||||
dest.writeValue(mtbAart);
|
||||
dest.writeByte((byte) (hidden ? 0x01 : 0x00));
|
||||
dest.writeString(partitaMag);
|
||||
|
||||
@ -13,13 +13,13 @@ import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOrdineInevasoViewModel;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineInevasoViewModel;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
||||
|
||||
public ActivityAccettazioneOrdineInevasoBinding bindings;
|
||||
private AccettazioneOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
||||
private AccettazioneOnOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
||||
|
||||
|
||||
@Override
|
||||
@ -31,7 +31,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
||||
ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
||||
|
||||
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key");
|
||||
mAccettazioneOrdineInevasoViewModel = new AccettazioneOrdineInevasoViewModel(
|
||||
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineInevasoViewModel(
|
||||
this, mArticoliInColloBottomSheetViewModel, orders);
|
||||
|
||||
setSupportActionBar(this.bindings.toolbar);
|
||||
|
||||
@ -6,6 +6,7 @@ import android.databinding.ObservableArrayList;
|
||||
import android.util.Log;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
@ -16,6 +17,7 @@ import java.util.TreeSet;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.coollection.Coollection;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
|
||||
@ -38,18 +40,18 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels);
|
||||
}
|
||||
|
||||
public void updateListModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List<List<OrdineAccettazioneDTO.Riga>> mDataset) throws Exception {
|
||||
public void updateListModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List<List<OrdineAccettazioneDTO.Riga>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
||||
|
||||
mListViewModels.clear();
|
||||
|
||||
switch (orderByEnum){
|
||||
case COD_ART_FOR:
|
||||
case DESCR_ART:
|
||||
mListViewModels.addAll(getListViewModelPerArtForn(mDataset));
|
||||
mListViewModels.addAll(getListViewModelPerArtForn(mDataset, mtbColrs));
|
||||
break;
|
||||
|
||||
case RAG_SOC_COM:
|
||||
mListViewModels.addAll(getListViewModelPerRagSocCommessa(mDataset));
|
||||
mListViewModels.addAll(getListViewModelPerRagSocCommessa(mDataset, mtbColrs));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -70,7 +72,10 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
|
||||
Collections.sort(codArtForns, new Comparator<String>() {
|
||||
public int compare(String str1, String str2) {
|
||||
return str1.compareToIgnoreCase(str2);
|
||||
if(str1 != null && str2 != null) {
|
||||
return str1.compareToIgnoreCase(str2);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
@ -145,7 +150,7 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
boolean alreadyExists = false;
|
||||
|
||||
if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = "N/A";
|
||||
if(mDataset.get(i).ragSocCom == null) mDataset.get(i).ragSocCom = mContext.getText(R.string.stock).toString().toUpperCase();
|
||||
if(mDataset.get(i).descrizioneCommessa == null) mDataset.get(i).descrizioneCommessa = mContext.getText(R.string.stock).toString().toUpperCase();
|
||||
|
||||
|
||||
for(int k = 0; k < commessaList.size(); k++){
|
||||
@ -157,7 +162,7 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
if(mDataset.get(i).codJcom != null && !alreadyExists){
|
||||
RaggruppaPerCommessaUtilDTO dto = new RaggruppaPerCommessaUtilDTO();
|
||||
dto.codJcom = mDataset.get(i).codJcom;
|
||||
dto.ragSocCom = mDataset.get(i).ragSocCom;
|
||||
dto.ragSocCom = mDataset.get(i).descrizioneCommessa;
|
||||
commessaList.add(dto);
|
||||
}
|
||||
}
|
||||
@ -201,7 +206,7 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
}
|
||||
|
||||
|
||||
public List<AccettazioneOrdineInevasoListViewModel> getListViewModelPerArtForn(List<List<OrdineAccettazioneDTO.Riga>> groupedRighe){
|
||||
public List<AccettazioneOrdineInevasoListViewModel> getListViewModelPerArtForn(List<List<OrdineAccettazioneDTO.Riga>> groupedRighe, List<MtbColr> mtbColrs){
|
||||
|
||||
List<AccettazioneOrdineInevasoListViewModel> listModel = new ArrayList<>();
|
||||
|
||||
@ -220,11 +225,15 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
rowModel.badge1 = rowItem.codJcom != null ? rowItem.codJcom : "MAG";
|
||||
rowModel.badge2 = String.valueOf(rowItem.numOrd);
|
||||
|
||||
rowModel.descrizione = rowItem.ragSocCom;
|
||||
// rowModel.descrizione = rowItem.ragSocCom;
|
||||
rowModel.descrizione = rowItem.descrizioneCommessa;
|
||||
|
||||
rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
|
||||
rowModel.qtaRiservata = decimalFormat.format(getRigaQuantityEvasa(rowItem, mtbColrs));
|
||||
// rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
|
||||
rowModel.qtaOrdinata = decimalFormat.format(rowItem.qtaOrd);
|
||||
|
||||
rowModel.originalModel = rowItem;
|
||||
|
||||
itemModel.rows.add(rowModel);
|
||||
}
|
||||
listModel.add(itemModel);
|
||||
@ -234,7 +243,7 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
}
|
||||
|
||||
|
||||
public List<AccettazioneOrdineInevasoListViewModel> getListViewModelPerRagSocCommessa(List<List<OrdineAccettazioneDTO.Riga>> groupedRighe) {
|
||||
public List<AccettazioneOrdineInevasoListViewModel> getListViewModelPerRagSocCommessa(List<List<OrdineAccettazioneDTO.Riga>> groupedRighe, List<MtbColr> mtbColrs) {
|
||||
List<AccettazioneOrdineInevasoListViewModel> listModel = new ArrayList<>();
|
||||
|
||||
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
||||
@ -258,9 +267,12 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
|
||||
rowModel.descrizione = rowItem.mtbAart.descrizioneEstesa;
|
||||
|
||||
rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
|
||||
rowModel.qtaRiservata = decimalFormat.format(getRigaQuantityEvasa(rowItem, mtbColrs));
|
||||
// rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
|
||||
rowModel.qtaOrdinata = decimalFormat.format(rowItem.qtaOrd);
|
||||
|
||||
rowModel.originalModel = rowItem;
|
||||
|
||||
itemModel.rows.add(rowModel);
|
||||
}
|
||||
listModel.add(itemModel);
|
||||
@ -268,4 +280,29 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
|
||||
return listModel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private float getRigaQuantityEvasa(OrdineAccettazioneDTO.Riga item, List<MtbColr> mtbColrs){
|
||||
float currentQtaEvasa = item.qtaRiservate;
|
||||
|
||||
if(mtbColrs != null) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
|
||||
List<MtbColr> filteredMtbColrs = Coollection.from(mtbColrs)
|
||||
.where("codMart", Coollection.eqIgnoreCase(item.mtbAart.codMart))
|
||||
.and("codJcom", Coollection.eqIgnoreCase(item.codJcom))
|
||||
.and("rigaOrd", Coollection.eq(item.rigaOrd))
|
||||
.and("numOrd", Coollection.eq(item.numOrd))
|
||||
.and("dataOrd", Coollection.eq(sdf.format(item.getDataOrd())))
|
||||
.all();
|
||||
|
||||
|
||||
for (MtbColr mtbColr : filteredMtbColrs) {
|
||||
currentQtaEvasa += mtbColr.getQtaCol().floatValue();
|
||||
}
|
||||
}
|
||||
|
||||
return currentQtaEvasa;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
|
||||
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
|
||||
public interface IOnOrdineRowDispatchCallback {
|
||||
|
||||
void onOrdineRowDispatch(OrdineAccettazioneDTO.Riga item);
|
||||
|
||||
}
|
||||
@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.databinding.ObservableList;
|
||||
import android.graphics.Color;
|
||||
import android.support.v4.util.Pools;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@ -11,12 +12,10 @@ import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
|
||||
|
||||
/**
|
||||
@ -27,16 +26,24 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
|
||||
protected Context mContext;
|
||||
protected ObservableArrayList<AccettazioneOrdineInevasoListViewModel> mDataset;
|
||||
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
|
||||
|
||||
private static final Pools.SynchronizedPool sPool =
|
||||
new Pools.SynchronizedPool(200);
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
// each data item is just a string in this case
|
||||
protected View mGroupTitle;
|
||||
protected LinearLayout mLinearLayoutGroupItemContainer;
|
||||
|
||||
protected List<View> pool = new ArrayList<>();
|
||||
|
||||
public ViewHolder(View v) {
|
||||
super(v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public MainListOrdineAccettazioneAdapter(Context context, ObservableArrayList<AccettazioneOrdineInevasoListViewModel> myDataset) {
|
||||
mContext = context;
|
||||
mDataset = myDataset;
|
||||
@ -44,6 +51,10 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
myDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
}
|
||||
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
|
||||
mOrdineRowDispatch = ordineRowDispatch;
|
||||
}
|
||||
|
||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<AccettazioneOrdineInevasoListViewModel>>() {
|
||||
@Override
|
||||
public void onChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender) {
|
||||
@ -78,7 +89,7 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
View v = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.accettazione_ordine_inevaso_main_list___cod_art_for, parent, false);
|
||||
|
||||
v.setHasTransientState(true);
|
||||
//v.setHasTransientState(true);
|
||||
|
||||
ViewHolder vh = new ViewHolder(v);
|
||||
|
||||
@ -106,10 +117,22 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
|
||||
final AccettazioneOrdineInevasoListViewModel.SubItem rowItem = subset.get(i);
|
||||
|
||||
View groupModelView = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.accettazione_ordine_inevaso_main_list___cod_art_for_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
||||
|
||||
if(i % 2 == 1){
|
||||
View groupModelViewPool = (View) sPool.acquire();
|
||||
if(groupModelViewPool == null){
|
||||
groupModelViewPool = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.accettazione_ordine_inevaso_main_list___cod_art_for_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
||||
}
|
||||
|
||||
|
||||
View groupModelView = groupModelViewPool;
|
||||
holder.pool.add(groupModelView);
|
||||
|
||||
if(Float.parseFloat(rowItem.qtaRiservata) == Float.parseFloat(rowItem.qtaOrdinata)) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
||||
} else if(Float.parseFloat(rowItem.qtaRiservata) > 0) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
||||
} else if(i % 2 == 1) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
||||
} else {
|
||||
groupModelView.setBackgroundColor(Color.WHITE);
|
||||
@ -145,12 +168,35 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
qtaTot.setText(rowItem.qtaOrdinata);
|
||||
|
||||
|
||||
groupModelView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if(mOrdineRowDispatch != null){
|
||||
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.originalModel);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(MainListOrdineAccettazioneAdapter.ViewHolder holder){
|
||||
if(holder != null){
|
||||
for(int i = 0; i < holder.pool.size(); i++){
|
||||
((ViewGroup) holder.pool.get(i).getParent()).removeView(holder.pool.get(i));
|
||||
sPool.release(holder.pool.get(i));
|
||||
}
|
||||
|
||||
holder.pool.clear();
|
||||
}
|
||||
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Return the size of your dataset (invoked by the layout manager)
|
||||
|
||||
@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
|
||||
/**
|
||||
* Created by GiuseppeS on 27/03/2018.
|
||||
*/
|
||||
@ -20,6 +22,8 @@ public class AccettazioneOrdineInevasoListViewModel {
|
||||
public String qtaRiservata;
|
||||
public String qtaOrdinata;
|
||||
|
||||
public OrdineAccettazioneDTO.Riga originalModel;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.databinding.ObservableField;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.content.res.ResourcesCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.text.SpannableString;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -17,7 +22,8 @@ import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
|
||||
import it.integry.integrywmsnative.core.coollection.Coollection;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
@ -26,14 +32,18 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.IOnOrdineRowDispatchCallback;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.views.NoteAggiuntiveNuovaULDialog;
|
||||
import it.integry.integrywmsnative.ui.StatusBarAlert;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
|
||||
public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallback {
|
||||
public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineRowDispatchCallback {
|
||||
|
||||
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
||||
|
||||
@ -49,7 +59,7 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
|
||||
private MainListOrdineAccettazioneAdapter mAdapter;
|
||||
|
||||
public AccettazioneOrdineInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||
public AccettazioneOnOrdineInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||
this.mActivity = activity;
|
||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||
this.mOrders = orders;
|
||||
@ -84,13 +94,16 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
|
||||
mActivity.bindings.accettazioneOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
|
||||
mAdapter = helper.getRightListAdapter();
|
||||
|
||||
try {
|
||||
mAdapter = helper.getRightListAdapter();
|
||||
helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe);
|
||||
helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(e.toString()), null, null).show();
|
||||
}
|
||||
|
||||
mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||
mActivity.bindings.accettazioneOrdineMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
@ -112,13 +125,16 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
}
|
||||
|
||||
try {
|
||||
helper.updateListModel(currentOrderBy, groupedRighe);
|
||||
List<MtbColr> mtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get() != null ? mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() : null;
|
||||
|
||||
helper.updateListModel(currentOrderBy, groupedRighe, mtbColrs);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Toast.makeText(mActivity, e.getMessage().toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void showOrderDialog() {
|
||||
|
||||
AlertDialog dialog = new AlertDialog.Builder(mActivity)
|
||||
@ -144,10 +160,16 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
|
||||
mActivity.bindings.accettazioneOrdineInevasoFab.close(true);
|
||||
|
||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||
mActivity.getText(R.string.loading) + " ...", true);
|
||||
|
||||
NoteAggiuntiveNuovaULDialog.show(mActivity, new NoteAggiuntiveNuovaULDialog.Callback() {
|
||||
@Override
|
||||
public void onSuccess(String noteString) {
|
||||
|
||||
//Add loading dialog here
|
||||
progress.show();
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt .setDataCollo(new Date())
|
||||
.setGestione(GestioneEnum.ACQUISTO)
|
||||
@ -163,23 +185,33 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
// mArticoliInColloBottomSheetHelper.initCollo(value);
|
||||
value.setMtbColr(new ObservableArrayList<MtbColr>());
|
||||
|
||||
isFabVisible.set(false);
|
||||
value.setMtbColr(new ObservableArrayList<MtbColr>());
|
||||
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(value);
|
||||
|
||||
progress.dismiss();
|
||||
|
||||
for(int i = 0; i < 10; i++){
|
||||
value.getMtbColr().add(new MtbColr().setCodMart("ABCICCIO").setDescrizione("DESCRCICCIO"));
|
||||
}
|
||||
new StatusBarAlert.Builder(mActivity)
|
||||
.autoHide(true)
|
||||
.withDuration(2500)
|
||||
.showProgress(false)
|
||||
.withText(R.string.data_saved)
|
||||
.withAlertColor(R.color.mainGreen)
|
||||
.build();
|
||||
|
||||
|
||||
DialogSimpleMessageHelper.makeInfoDialog(mActivity, "Creazione UL",new SpannableString("Salvataggio collo avvenuto con successo"), null, null).show();
|
||||
/*DialogSimpleMessageHelper.makeInfoDialog(mActivity,
|
||||
mActivity.getString(R.string.lu_creation),
|
||||
new SpannableString(mActivity.getString(R.string.data_saved)),
|
||||
null,
|
||||
null).show();
|
||||
*/
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
progress.dismiss();
|
||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||
|
||||
if(errorMessage == null) errorMessage = ex.getMessage();
|
||||
@ -188,6 +220,11 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAbort() {
|
||||
progress.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -202,5 +239,95 @@ public class AccettazioneOrdineInevasoViewModel implements IOnColloClosedCallbac
|
||||
@Override
|
||||
public void onColloClosed() {
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
|
||||
isFabVisible.set(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOrdineRowDispatch(final OrdineAccettazioneDTO.Riga item) {
|
||||
if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null){
|
||||
|
||||
List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr();
|
||||
|
||||
List<MtbColr> filteredMtbColrs = Coollection.from(currentMtbColrs)
|
||||
.where("codMart", Coollection.eqIgnoreCase(item.mtbAart.codMart))
|
||||
.and("numOrd", Coollection.eq(item.numOrd))
|
||||
.and("codJcom", Coollection.eq(item.codJcom))
|
||||
.and("rigaOrd", Coollection.eq(item.rigaOrd))
|
||||
.all();
|
||||
|
||||
float qtaEvasaInMtbColr = 0;
|
||||
for (MtbColr mtbColr : filteredMtbColrs) {
|
||||
qtaEvasaInMtbColr += mtbColr.getQtaCol().floatValue();
|
||||
}
|
||||
|
||||
float qtaEvasa = item.qtaRiservate + qtaEvasaInMtbColr;
|
||||
|
||||
DialogInputQuantity.makeBase(mActivity, item, qtaEvasa, new ISingleValueOperationCallback<QuantityDTO>() {
|
||||
@Override
|
||||
public void onResult(QuantityDTO value) {
|
||||
onOrdineRowDispatched(item, value);
|
||||
}
|
||||
}).show();
|
||||
|
||||
// Toast.makeText(mActivity, item.descrizioneEstesa, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
private void onOrdineRowDispatched(OrdineAccettazioneDTO.Riga item, QuantityDTO quantityDTO){
|
||||
|
||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||
mActivity.getText(R.string.loading) + " ...", true);
|
||||
|
||||
final MtbColr mtbColr = new MtbColr()
|
||||
.setCodMart(item.mtbAart.codMart)
|
||||
.setPartitaMag(quantityDTO.batchLot.get())
|
||||
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
||||
.setDescrizione(item.descrizioneEstesa)
|
||||
.setNumOrd(item.numOrd)
|
||||
.setDataOrd(item.getDataOrd())
|
||||
.setCodJcom(item.codJcom)
|
||||
.setRigaOrd(item.rigaOrd);
|
||||
|
||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||
|
||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||
|
||||
cloneMtbColt.setMtbColr(new ObservableArrayList<MtbColr>());
|
||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr);
|
||||
refreshOrderBy();
|
||||
|
||||
new StatusBarAlert.Builder(mActivity)
|
||||
.autoHide(true)
|
||||
.withDuration(2500)
|
||||
.showProgress(false)
|
||||
.withText(R.string.data_saved)
|
||||
.withAlertColor(R.color.mainGreen)
|
||||
.build();
|
||||
|
||||
progress.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
progress.dismiss();
|
||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||
|
||||
if(errorMessage == null) errorMessage = ex.getMessage();
|
||||
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -15,6 +15,7 @@ public class NoteAggiuntiveNuovaULDialog {
|
||||
|
||||
public interface Callback {
|
||||
void onSuccess(String noteString);
|
||||
void onAbort();
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +56,12 @@ public class NoteAggiuntiveNuovaULDialog {
|
||||
callback.onSuccess(mTextInputEditText.getText().toString());
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.abort, null)
|
||||
.setNegativeButton(R.string.abort, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
callback.onAbort();
|
||||
}
|
||||
})
|
||||
.create();
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@ -0,0 +1,369 @@
|
||||
package it.integry.integrywmsnative.ui;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.TimeInterpolator;
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Build;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewPropertyAnimator;
|
||||
import android.view.Window;
|
||||
import android.view.animation.AccelerateDecelerateInterpolator;
|
||||
import android.view.animation.AccelerateInterpolator;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.fede987.statusbaralert.utils.ScreenUtils;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import kotlin.TypeCastException;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
public class StatusBarAlert {
|
||||
|
||||
private static final Map allAlerts = (Map)(new LinkedHashMap());
|
||||
private static int statusBarColorOringinal;
|
||||
private static boolean hasOriginalStatusBarTranslucent;
|
||||
public static final StatusBarAlert.Companion Companion = new StatusBarAlert.Companion();
|
||||
|
||||
|
||||
public static final class Builder {
|
||||
private int text;
|
||||
private String stringText;
|
||||
private int alertColor;
|
||||
private boolean showProgress;
|
||||
private long duration;
|
||||
private boolean autoHide;
|
||||
private Activity context;
|
||||
|
||||
@Nullable
|
||||
public final View build() {
|
||||
return StatusBarAlert.Companion.addStatusBarTextAndProgress(this.context, this.text, this.stringText, this.alertColor, this.showProgress, this.autoHide, this.duration);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final StatusBarAlert.Builder withAlertColor(int alertColor) {
|
||||
this.alertColor = alertColor;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final StatusBarAlert.Builder withText(int text) {
|
||||
this.text = text;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final StatusBarAlert.Builder withText(@NotNull String text) {
|
||||
Intrinsics.checkParameterIsNotNull(text, "text");
|
||||
this.stringText = text;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final StatusBarAlert.Builder showProgress(boolean showProgress) {
|
||||
this.showProgress = showProgress;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final StatusBarAlert.Builder autoHide(boolean autoHide) {
|
||||
this.autoHide = autoHide;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final StatusBarAlert.Builder withDuration(long millis) {
|
||||
this.duration = millis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder(@NotNull Activity context) {
|
||||
super();
|
||||
Intrinsics.checkParameterIsNotNull(context, "context");
|
||||
this.context = context;
|
||||
this.stringText = "";
|
||||
this.duration = 2000L;
|
||||
this.autoHide = true;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class Companion {
|
||||
@Nullable
|
||||
public final View addStatusBarTextAndProgress(@NotNull final Activity any, @Nullable Integer text, @Nullable String stringText, int alertColor, boolean showProgress, boolean autoHide, long duration) {
|
||||
|
||||
this.hide(any, null);
|
||||
Window var10000 = any.getWindow();
|
||||
|
||||
View var18 = var10000.getDecorView();
|
||||
if (var18 == null) {
|
||||
throw new TypeCastException("null cannot be cast to non-null type android.view.ViewGroup");
|
||||
} else {
|
||||
|
||||
ViewGroup decor = (ViewGroup)var18;
|
||||
final LinearLayout statusBarAlert = new LinearLayout(any);
|
||||
statusBarAlert.setLayoutParams(new ViewGroup.LayoutParams(-1, ScreenUtils.Companion.getStatusBarHeight(any)));
|
||||
statusBarAlert.setGravity(1);
|
||||
|
||||
if (alertColor > 0) {
|
||||
statusBarAlert.setBackgroundColor(ContextCompat.getColor(any, alertColor));
|
||||
}
|
||||
|
||||
LinearLayout ll2;
|
||||
TextView t;
|
||||
CharSequence var19;
|
||||
label58: {
|
||||
ll2 = new LinearLayout(any);
|
||||
ll2.setOrientation(LinearLayout.HORIZONTAL);
|
||||
ll2.setGravity(16);
|
||||
ll2.setLayoutParams(new ViewGroup.LayoutParams(-2, ScreenUtils.Companion.getStatusBarHeight(any)));
|
||||
t = new TextView(any);
|
||||
t.setLayoutParams(new ViewGroup.LayoutParams(-2, ScreenUtils.Companion.getStatusBarHeight(any)));
|
||||
t.setTextSize(12.0F);
|
||||
t.setTextColor(-1);
|
||||
t.setGravity(17);
|
||||
if (text != null) {
|
||||
if (text == 0) {
|
||||
var19 = (Intrinsics.areEqual(stringText, "") ^ true ? "" + stringText + ' ' : "");
|
||||
break label58;
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder var10001 = new StringBuilder();
|
||||
Resources var10002 = any.getResources();
|
||||
if (text == null) {
|
||||
Intrinsics.throwNpe();
|
||||
}
|
||||
|
||||
var19 = var10001.append(var10002.getString(text)).append(" ").toString();
|
||||
}
|
||||
|
||||
t.setText(var19);
|
||||
t.setIncludeFontPadding(false);
|
||||
ll2.addView(t);
|
||||
if (showProgress) {
|
||||
ProgressBar p = new ProgressBar(any);
|
||||
p.setIndeterminate(true);
|
||||
p.getIndeterminateDrawable().setColorFilter(-1, PorterDuff.Mode.SRC_IN);
|
||||
p.setLayoutParams(new ViewGroup.LayoutParams(ScreenUtils.Companion.convertDpToPixel(11.0F, any), ScreenUtils.Companion.convertDpToPixel(11.0F, (Context)any)));
|
||||
ll2.addView(p);
|
||||
}
|
||||
|
||||
statusBarAlert.addView(ll2);
|
||||
var10000 = any.getWindow();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var10000, "any.window");
|
||||
var18 = var10000.getDecorView();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var18, "any.window.decorView");
|
||||
View decorView = var18.getRootView();
|
||||
Intrinsics.checkExpressionValueIsNotNull(decorView, "decorView");
|
||||
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
|
||||
StatusBarAlert.hasOriginalStatusBarTranslucent = this.isTranslucentStatusBar(any);
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
any.getWindow().clearFlags(67108864);
|
||||
var10000 = any.getWindow();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var10000, "any.window");
|
||||
StatusBarAlert.statusBarColorOringinal = var10000.getStatusBarColor();
|
||||
var10000 = any.getWindow();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var10000, "any.window");
|
||||
var10000.setStatusBarColor(0);
|
||||
}
|
||||
|
||||
decor.addView(statusBarAlert);
|
||||
ll2.setTranslationY(-((float)ScreenUtils.Companion.convertDpToPixel(25.0F, any)));
|
||||
ViewPropertyAnimator var20 = ll2.animate();
|
||||
if (var20 == null) {
|
||||
Intrinsics.throwNpe();
|
||||
}
|
||||
|
||||
var20.translationY(0.0F).setDuration(150L).setStartDelay(350L).setInterpolator((new AccelerateDecelerateInterpolator())).start();
|
||||
if (autoHide) {
|
||||
statusBarAlert.postDelayed((new Runnable() {
|
||||
public final void run() {
|
||||
if (!any.isFinishing() && statusBarAlert.getParent() != null) {
|
||||
StatusBarAlert.Companion.hideInternal(any, statusBarAlert, null);
|
||||
}
|
||||
|
||||
Map var10000 = StatusBarAlert.allAlerts;
|
||||
ComponentName var10001 = any.getComponentName();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var10001, "any.componentName");
|
||||
var10000.remove(var10001.getClassName());
|
||||
}
|
||||
}), duration + (long)500);
|
||||
}
|
||||
|
||||
Map var21 = StatusBarAlert.allAlerts;
|
||||
ComponentName var22 = any.getComponentName();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var22, "any.componentName");
|
||||
if (var21.get(var22.getClassName()) == null) {
|
||||
Map var14 = StatusBarAlert.allAlerts;
|
||||
ComponentName var23 = any.getComponentName();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var23, "any.componentName");
|
||||
String var24 = var23.getClassName();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var24, "any.componentName.className");
|
||||
String var15 = var24;
|
||||
List var16 = new ArrayList();
|
||||
var14.put(var15, var16);
|
||||
}
|
||||
|
||||
var21 = StatusBarAlert.allAlerts;
|
||||
var22 = any.getComponentName();
|
||||
Intrinsics.checkExpressionValueIsNotNull(var22, "any.componentName");
|
||||
List var25 = (List)var21.get(var22.getClassName());
|
||||
if (var25 != null) {
|
||||
var25.add(statusBarAlert);
|
||||
}
|
||||
|
||||
return statusBarAlert;
|
||||
}
|
||||
}
|
||||
|
||||
public final void hide(@NotNull Activity any, @Nullable Runnable onHidden) {
|
||||
Map var10000;
|
||||
ComponentName var10001;
|
||||
List var9;
|
||||
label48: {
|
||||
var10000 = StatusBarAlert.allAlerts;
|
||||
var10001 = any.getComponentName();
|
||||
|
||||
if (var10000.get(var10001.getClassName()) != null) {
|
||||
var10000 = StatusBarAlert.allAlerts;
|
||||
var10001 = any.getComponentName();
|
||||
|
||||
var9 = (List)var10000.get(var10001.getClassName());
|
||||
if (var9 == null) {
|
||||
break label48;
|
||||
}
|
||||
|
||||
if (var9.size() != 0) {
|
||||
break label48;
|
||||
}
|
||||
}
|
||||
|
||||
if (onHidden != null) {
|
||||
onHidden.run();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var10000 = StatusBarAlert.allAlerts;
|
||||
var10001 = any.getComponentName();
|
||||
var9 = (List)var10000.get(var10001.getClassName());
|
||||
if (var9 != null) {
|
||||
Iterable $receiver$iv = var9;
|
||||
Iterator var4 = $receiver$iv.iterator();
|
||||
|
||||
while(var4.hasNext()) {
|
||||
Object element$iv = var4.next();
|
||||
LinearLayout it = (LinearLayout)element$iv;
|
||||
StatusBarAlert.Companion.hideInternal(any, it, onHidden);
|
||||
}
|
||||
}
|
||||
|
||||
var10000 = StatusBarAlert.allAlerts;
|
||||
var10001 = any.getComponentName();
|
||||
var9 = (List)var10000.get(var10001.getClassName());
|
||||
if (var9 != null) {
|
||||
var9.clear();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private final void hideInternal(Activity any, final LinearLayout it, final Runnable onHidden) {
|
||||
if (it.getParent() != null) {
|
||||
Window var10000 = any.getWindow();
|
||||
View var5 = var10000.getDecorView();
|
||||
var5 = var5.getRootView();
|
||||
var5.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
var10000 = any.getWindow();
|
||||
var10000.setStatusBarColor(StatusBarAlert.statusBarColorOringinal);
|
||||
if (StatusBarAlert.hasOriginalStatusBarTranslucent) {
|
||||
any.getWindow().addFlags(67108864);
|
||||
}
|
||||
}
|
||||
|
||||
var10000 = any.getWindow();
|
||||
var5 = var10000.getDecorView();
|
||||
if (var5 == null) {
|
||||
throw new TypeCastException("null cannot be cast to non-null type android.view.ViewGroup");
|
||||
}
|
||||
|
||||
final ViewGroup decor = (ViewGroup)var5;
|
||||
ViewPropertyAnimator var6 = it.animate();
|
||||
if (var6 != null) {
|
||||
var6 = var6.translationY(-((float)ScreenUtils.Companion.convertDpToPixel(25.0F, (Context)any)));
|
||||
if (var6 != null) {
|
||||
var6 = var6.setDuration(150L);
|
||||
if (var6 != null) {
|
||||
var6 = var6.setStartDelay(500L);
|
||||
if (var6 != null) {
|
||||
var6 = var6.setInterpolator(new AccelerateInterpolator());
|
||||
if (var6 != null) {
|
||||
var6 = var6.setListener((new Animator.AnimatorListener() {
|
||||
public void onAnimationRepeat(@Nullable Animator animation) {
|
||||
}
|
||||
|
||||
public void onAnimationEnd(@Nullable Animator animation) {
|
||||
decor.removeView((View)it);
|
||||
Runnable var10000 = onHidden;
|
||||
if (onHidden != null) {
|
||||
var10000.run();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onAnimationStart(@Nullable Animator animation) {
|
||||
}
|
||||
|
||||
public void onAnimationCancel(@Nullable Animator animation) {
|
||||
}
|
||||
}));
|
||||
if (var6 != null) {
|
||||
var6.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private final boolean isTranslucentStatusBar(Context any) {
|
||||
if (any == null) {
|
||||
throw new TypeCastException("null cannot be cast to non-null type android.app.Activity");
|
||||
} else {
|
||||
Window w = ((Activity)any).getWindow();
|
||||
android.view.WindowManager.LayoutParams lp = w.getAttributes();
|
||||
int flags = lp.flags;
|
||||
if (Build.VERSION.SDK_INT >= 19) {
|
||||
return (flags & 67108864) == 67108864;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Companion() {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,8 +4,6 @@ import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.design.widget.BottomSheetBehavior;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.AppCompatButton;
|
||||
import android.support.v7.widget.AppCompatTextView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.SpannableString;
|
||||
import android.view.View;
|
||||
@ -46,6 +44,8 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
mBottomSheetBehavior.setBottomSheetCallback(this);
|
||||
|
||||
appBarLayoutBottomSheet.setVisibility(View.INVISIBLE);
|
||||
|
||||
toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp);
|
||||
toolbarBottomSheet.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@ -66,9 +66,20 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
|
||||
});
|
||||
|
||||
|
||||
mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul) + " ");
|
||||
mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul));
|
||||
updateRigheNumber(0);
|
||||
|
||||
mBinding.articoliInColloSheetButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
||||
} else {
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void initCollo(MtbColt mtbColt){
|
||||
@ -88,17 +99,9 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
|
||||
}
|
||||
|
||||
public void updateRigheNumber(int newRigheNumber){
|
||||
mBinding.articoliInColloSheetButton.setText(" " + newRigheNumber + " " + mActivity.getResources().getQuantityString(R.plurals.articles, newRigheNumber));
|
||||
mBinding.articoliInColloSheetButton.setText(newRigheNumber + " " + mActivity.getResources().getQuantityString(R.plurals.articles, newRigheNumber));
|
||||
}
|
||||
|
||||
@OnClick(R.id.articoli_in_collo_sheet_button)
|
||||
public void onClick(View view) {
|
||||
if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
||||
} else {
|
||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
||||
@ -107,14 +110,24 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
|
||||
// mRootView.scrollTo(0, 0);
|
||||
break;
|
||||
case BottomSheetBehavior.STATE_EXPANDED:
|
||||
appBarLayoutBottomSheet.setClickable(true);
|
||||
appBarLayoutBottomSheet.setFocusable(true);
|
||||
tapActionLayout.setClickable(false);
|
||||
tapActionLayout.setFocusable(false);
|
||||
break;
|
||||
case BottomSheetBehavior.STATE_COLLAPSED:
|
||||
// mRootView.scrollTo(0, 0);
|
||||
appBarLayoutBottomSheet.setVisibility(View.INVISIBLE);
|
||||
appBarLayoutBottomSheet.setClickable(false);
|
||||
appBarLayoutBottomSheet.setFocusable(false);
|
||||
tapActionLayout.setClickable(true);
|
||||
tapActionLayout.setFocusable(true);
|
||||
break;
|
||||
case BottomSheetBehavior.STATE_DRAGGING:
|
||||
appBarLayoutBottomSheet.setVisibility(View.VISIBLE);
|
||||
// mRootView.scrollTo(0, 0);
|
||||
break;
|
||||
case BottomSheetBehavior.STATE_SETTLING:
|
||||
appBarLayoutBottomSheet.setVisibility(View.VISIBLE);
|
||||
// mRootView.scrollTo(0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
package it.integry.integrywmsnative.view.bottomsheet.interfaces;
|
||||
|
||||
public interface IOnSimpleListChangedCallback {
|
||||
|
||||
void onChange();
|
||||
|
||||
}
|
||||
@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnSimpleListChangedCallback;
|
||||
|
||||
public class ArticoliInColloBottomSheetViewModel {
|
||||
|
||||
@ -42,6 +43,18 @@ public class ArticoliInColloBottomSheetViewModel {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
mBindings.linearListview.setAdapter(new ArticoliInColloBottomSheetMtbColrAdapter());
|
||||
|
||||
if(mtbColt.get() != null) {
|
||||
mArticoliInColloBottomSheetHelper.updateRigheNumber(mtbColt.get().getMtbColr().size());
|
||||
mArticoliInColloBottomSheetHelper.initCollo(mtbColt.get());
|
||||
|
||||
mtbColt.get().getMtbColr().addOnListChangedCallback(new SimpleListChangedCallback(new IOnSimpleListChangedCallback() {
|
||||
@Override
|
||||
public void onChange() {
|
||||
mArticoliInColloBottomSheetHelper.updateRigheNumber(mtbColt.get().getMtbColr().size());
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -76,8 +89,6 @@ public class ArticoliInColloBottomSheetViewModel {
|
||||
|
||||
final MtbColr item = mtbColt.get().getMtbColr().get(position);
|
||||
binding.setVariable(BR.mtbColr, item);
|
||||
// viewHolder.binding.getRoot().setTag(ITEM_MODEL, item);
|
||||
// viewHolder.binding.getRoot().setOnClickListener(this);
|
||||
binding.executePendingBindings();
|
||||
|
||||
if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
package it.integry.integrywmsnative.view.bottomsheet.viewmodel;
|
||||
|
||||
import android.databinding.ObservableList;
|
||||
|
||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnSimpleListChangedCallback;
|
||||
|
||||
public class SimpleListChangedCallback extends ObservableList.OnListChangedCallback {
|
||||
|
||||
private IOnSimpleListChangedCallback mOnSimpleListChangedCallback;
|
||||
|
||||
public SimpleListChangedCallback(IOnSimpleListChangedCallback onSimpleListChangedCallback) {
|
||||
mOnSimpleListChangedCallback = onSimpleListChangedCallback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChanged(ObservableList sender) {
|
||||
mOnSimpleListChangedCallback.onChange();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
|
||||
mOnSimpleListChangedCallback.onChange();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
|
||||
mOnSimpleListChangedCallback.onChange();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
|
||||
mOnSimpleListChangedCallback.onChange();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
|
||||
mOnSimpleListChangedCallback.onChange();
|
||||
mOnSimpleListChangedCallback.onChange();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,218 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.input_quantity;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.databinding.DataBindingUtil;
|
||||
import android.databinding.Observable;
|
||||
import android.databinding.ViewDataBinding;
|
||||
import android.graphics.Color;
|
||||
import android.support.design.widget.TextInputLayout;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import it.integry.integrywmsnative.BR;
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.IButtonDialogAction;
|
||||
|
||||
public class DialogInputQuantity {
|
||||
|
||||
private static ColorStateList originalColorStateList = null;
|
||||
|
||||
public static AlertDialog makeBase(Context context, OrdineAccettazioneDTO.Riga articoloItem, final float qtaEvasa, final ISingleValueOperationCallback<QuantityDTO> dialogCallback) {
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
|
||||
ViewDataBinding contentView = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_articolo, null, false);
|
||||
|
||||
TextInputLayout txlInputNumDiCnf = contentView.getRoot().findViewById(R.id.input_num_cnf);
|
||||
TextInputLayout txlInputQtaPerCnf = contentView.getRoot().findViewById(R.id.input_qta_cnf);
|
||||
TextInputLayout txlInputQtaTot = contentView.getRoot().findViewById(R.id.input_qta_tot);
|
||||
|
||||
txlInputNumDiCnf.getEditText().setSelectAllOnFocus(true);
|
||||
txlInputQtaPerCnf.getEditText().setSelectAllOnFocus(true);
|
||||
txlInputQtaTot.getEditText().setSelectAllOnFocus(true);
|
||||
|
||||
originalColorStateList = txlInputNumDiCnf.getEditText().getTextColors();
|
||||
|
||||
final QuantityDTO quantityDTO = new QuantityDTO();
|
||||
|
||||
setupQuantities(articoloItem, quantityDTO, qtaEvasa);
|
||||
|
||||
setupQuantityListener(quantityDTO, txlInputNumDiCnf, txlInputQtaPerCnf, txlInputQtaTot);
|
||||
|
||||
contentView.setVariable(BR.viewmodel, articoloItem);
|
||||
contentView.setVariable(BR.quantityViewModel, quantityDTO);
|
||||
|
||||
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
|
||||
.setView(contentView.getRoot())
|
||||
.setPositiveButton(context.getText(R.string.confirm), new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
dialogCallback.onResult(quantityDTO);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(context.getText(R.string.abort), null);
|
||||
|
||||
AlertDialog alert = alertDialog.create();
|
||||
alert.setCanceledOnTouchOutside(false);
|
||||
|
||||
return alert;
|
||||
|
||||
}
|
||||
|
||||
private static void setupQuantities(OrdineAccettazioneDTO.Riga articoloItem, QuantityDTO quantityDTO, float qtaEvasa){
|
||||
float qtaDaEvadere = articoloItem.qtaOrd - qtaEvasa;
|
||||
if (qtaDaEvadere < 0) qtaDaEvadere = 0;
|
||||
|
||||
quantityDTO.qtaEvasa.set(qtaEvasa);
|
||||
quantityDTO.qtaDaEvadere.set(qtaDaEvadere);
|
||||
|
||||
quantityDTO.batchLot.set(articoloItem.partitaMag);
|
||||
quantityDTO.qtaCnf.set(articoloItem.mtbAart.qtaCnf.floatValue());
|
||||
quantityDTO.qtaTot.set(qtaDaEvadere);
|
||||
quantityDTO.numCnf.set(qtaDaEvadere / quantityDTO.qtaCnf.get());
|
||||
|
||||
quantityDTO.shouldAskDataScad.set(articoloItem.mtbAart.isFlagTracciabilita() && articoloItem.mtbAart.ggScadPartita != null && articoloItem.mtbAart.ggScadPartita > 0);
|
||||
|
||||
}
|
||||
|
||||
private static void setupQuantityListener(final QuantityDTO quantityDTO, final TextInputLayout txlInputNumDiCnf, final TextInputLayout txlInputQtaPerCnf, final TextInputLayout txlInputQtaTot) {
|
||||
|
||||
quantityDTO.numCnf.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
|
||||
if(quantityDTO.numCnfNotificationEnabled) {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!quantityDTO.blockedQtaTot.get()) {
|
||||
|
||||
quantityDTO.qtaTotNotificationEnabled = false;
|
||||
quantityDTO.qtaTot.set((float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 100) / 100);
|
||||
quantityDTO.qtaTotNotificationEnabled = true;
|
||||
|
||||
|
||||
} else if (!quantityDTO.blockedQtaPerCnf.get()) {
|
||||
|
||||
quantityDTO.qtaCnfNotificationEnabled = false;
|
||||
if(quantityDTO.numCnf.get(true) != 0) {
|
||||
quantityDTO.qtaCnf.set((float) Math.round(quantityDTO.qtaTot.get(true) / quantityDTO.numCnf.get(true) * 100) / 100);
|
||||
} else {
|
||||
quantityDTO.qtaCnf.set((float) Math.round(quantityDTO.qtaTot.get(true) / 1 * 100) / 100);
|
||||
}
|
||||
quantityDTO.qtaCnfNotificationEnabled = true;
|
||||
|
||||
} else {
|
||||
Log.e("DialogInputQuantity", "Tutti i campi sono bloccati, non è possibile modificare il numero di confezioni");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
quantityDTO.qtaCnf.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
|
||||
if(quantityDTO.qtaCnfNotificationEnabled) {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if (!quantityDTO.blockedQtaTot.get()) {
|
||||
|
||||
quantityDTO.qtaTotNotificationEnabled = false;
|
||||
quantityDTO.qtaTot.set((float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 100) / 100);
|
||||
quantityDTO.qtaTotNotificationEnabled = true;
|
||||
|
||||
} else if (!quantityDTO.blockedNumDiCnf.get()) {
|
||||
|
||||
quantityDTO.numCnfNotificationEnabled = false;
|
||||
if(quantityDTO.qtaCnf.get(true) != 0){
|
||||
quantityDTO.numCnf.set((float) Math.ceil(quantityDTO.qtaTot.get(true) / quantityDTO.qtaCnf.get(true)));
|
||||
} else {
|
||||
quantityDTO.numCnf.set((float) Math.ceil(quantityDTO.qtaTot.get(true)));
|
||||
}
|
||||
|
||||
quantityDTO.numCnfNotificationEnabled = true;
|
||||
|
||||
} else {
|
||||
Log.e("DialogInputQuantity", "Tutti i campi sono bloccati, non è possibile modificare la quantità per confezione");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
quantityDTO.qtaTot.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
|
||||
if (quantityDTO.qtaTotNotificationEnabled) {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if(!quantityDTO.blockedQtaPerCnf.get()){
|
||||
|
||||
quantityDTO.qtaCnfNotificationEnabled = false;
|
||||
quantityDTO.qtaCnf.set((float) Math.round(quantityDTO.qtaTot.get(true) / quantityDTO.numCnf.get(true) *100)/100);
|
||||
quantityDTO.qtaCnfNotificationEnabled = true;
|
||||
|
||||
} else if(!quantityDTO.blockedNumDiCnf.get()) {
|
||||
|
||||
quantityDTO.numCnfNotificationEnabled = false;
|
||||
quantityDTO.numCnf.set((float) Math.ceil(quantityDTO.qtaTot.get(true) / quantityDTO.qtaCnf.get(true)));
|
||||
quantityDTO.numCnfNotificationEnabled = true;
|
||||
|
||||
} else {
|
||||
Log.e("DialogInputQuantity", "Tutti i campi sono bloccati, non è possibile modificare la quantità totale");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.input_quantity;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.di.BindableFloat;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
|
||||
public class QuantityDTO {
|
||||
|
||||
public BindableString batchLot = new BindableString();
|
||||
|
||||
public BindableFloat numCnf = new BindableFloat();
|
||||
public BindableFloat qtaCnf = new BindableFloat();
|
||||
public BindableFloat qtaTot = new BindableFloat();
|
||||
|
||||
public BindableFloat qtaEvasa = new BindableFloat();
|
||||
public BindableFloat qtaDaEvadere = new BindableFloat();
|
||||
|
||||
|
||||
|
||||
public BindableBoolean blockedNumDiCnf = new BindableBoolean();
|
||||
public BindableBoolean blockedQtaTot = new BindableBoolean();
|
||||
public BindableBoolean blockedQtaPerCnf = new BindableBoolean();
|
||||
|
||||
public boolean numCnfNotificationEnabled = true;
|
||||
public boolean qtaCnfNotificationEnabled = true;
|
||||
public boolean qtaTotNotificationEnabled = true;
|
||||
|
||||
|
||||
public BindableBoolean canPartitaMagBeChanged = new BindableBoolean(true);
|
||||
public BindableBoolean canDataScadBeChanged = new BindableBoolean(true);
|
||||
public BindableBoolean shouldAskDataScad = new BindableBoolean();
|
||||
|
||||
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
<vector
|
||||
android:height="24dp" android:viewportHeight="512.0"
|
||||
android:viewportWidth="548.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
android:viewportWidth="512.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@color/colorPrimary" android:pathData="M509.5,184.6L458.9,32.8C452.4,13.2 434.1,0 413.4,0H272v192h238.7c-0.4,-2.5 -0.4,-5 -1.2,-7.4zM240,0H98.6c-20.7,0 -39,13.2 -45.5,32.8L2.5,184.6c-0.8,2.4 -0.8,4.9 -1.2,7.4H240V0zM0,224v240c0,26.5 21.5,48 48,48h416c26.5,0 48,-21.5 48,-48V224H0z"/>
|
||||
</vector>
|
||||
|
||||
5
app/src/main/res/drawable/ic_close_red_24dp.xml
Normal file
5
app/src/main/res/drawable/ic_close_red_24dp.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="@color/red_600"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FFFFFF" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
|
||||
</vector>
|
||||
6
app/src/main/res/drawable/shape_gradient_top_shadow.xml
Normal file
6
app/src/main/res/drawable/shape_gradient_top_shadow.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:endColor="@android:color/transparent"
|
||||
android:startColor="#64000000"/>
|
||||
</shape>
|
||||
BIN
app/src/main/res/font/open_sans_bold.ttf
Normal file
BIN
app/src/main/res/font/open_sans_bold.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_bold_italic.ttf
Normal file
BIN
app/src/main/res/font/open_sans_bold_italic.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_extra_bold.ttf
Normal file
BIN
app/src/main/res/font/open_sans_extra_bold.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_extra_bold_italic.ttf
Normal file
BIN
app/src/main/res/font/open_sans_extra_bold_italic.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_italic.ttf
Normal file
BIN
app/src/main/res/font/open_sans_italic.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_light.ttf
Normal file
BIN
app/src/main/res/font/open_sans_light.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_light_italic.ttf
Normal file
BIN
app/src/main/res/font/open_sans_light_italic.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_regular.ttf
Normal file
BIN
app/src/main/res/font/open_sans_regular.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_semi_bold.ttf
Normal file
BIN
app/src/main/res/font/open_sans_semi_bold.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/open_sans_semi_bold_italic.ttf
Normal file
BIN
app/src/main/res/font/open_sans_semi_bold_italic.ttf
Normal file
Binary file not shown.
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -30,4 +29,4 @@
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/accettazione_ordine_inevaso_main_list_group_item_container"> </LinearLayout>
|
||||
</LinearLayout>
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
</RelativeLayout>
|
||||
@ -5,16 +5,17 @@
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOrdineInevasoViewModel"/>
|
||||
type="it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineInevasoViewModel"/>
|
||||
|
||||
</data>
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto">
|
||||
android:fitsSystemWindows="false"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_gravity="top">
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
@ -24,7 +25,8 @@
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@id/empty_space_padding">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
@ -62,37 +64,37 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="@{viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
||||
fab:menu_buttonSpacing="0dp"
|
||||
fab:menu_colorNormal="@color/colorPrimary"
|
||||
fab:menu_colorPressed="@color/colorPrimaryDark"
|
||||
fab:menu_fab_size="normal"
|
||||
fab:menu_showShadow="true"
|
||||
fab:menu_labels_colorNormal="@color/white"
|
||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
||||
fab:menu_labels_cornerRadius="3dp"
|
||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
||||
fab:menu_labels_margin="0dp"
|
||||
fab:menu_labels_padding="8dp"
|
||||
fab:menu_labels_paddingBottom="4dp"
|
||||
fab:menu_labels_paddingLeft="8dp"
|
||||
fab:menu_labels_paddingRight="8dp"
|
||||
fab:menu_labels_paddingTop="4dp"
|
||||
fab:menu_labels_position="left"
|
||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
||||
fab:menu_labels_showShadow="true"
|
||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
||||
fab:menu_labels_textSize="18sp"
|
||||
fab:menu_openDirection="up"
|
||||
fab:menu_shadowColor="#66000000"
|
||||
fab:menu_shadowRadius="4dp"
|
||||
fab:menu_shadowXOffset="1dp"
|
||||
fab:menu_shadowYOffset="3dp"
|
||||
fab:menu_colorNormal="@color/colorPrimary"
|
||||
fab:menu_colorPressed="@color/colorPrimaryDark"
|
||||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_buttonSpacing="0dp"
|
||||
fab:menu_labels_margin="0dp"
|
||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
||||
fab:menu_labels_paddingTop="4dp"
|
||||
fab:menu_labels_paddingRight="8dp"
|
||||
fab:menu_labels_paddingBottom="4dp"
|
||||
fab:menu_labels_paddingLeft="8dp"
|
||||
fab:menu_labels_padding="8dp"
|
||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
||||
fab:menu_labels_textSize="18sp"
|
||||
fab:menu_labels_cornerRadius="3dp"
|
||||
fab:menu_labels_colorNormal="@color/white"
|
||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
||||
fab:menu_labels_showShadow="true"
|
||||
fab:menu_labels_position="left"
|
||||
fab:menu_openDirection="up"
|
||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
||||
android:visibility="@{viewmodel.isFabVisible ? View.VISIBLE : View.GONE}">
|
||||
fab:menu_showShadow="true">
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/accettazione_ordine_inevaso_fab_item1"
|
||||
@ -102,8 +104,8 @@
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
fab:fab_label="@string/action_show_created_ul"
|
||||
app:onClick="@{() -> viewmodel.showCreatedUL()}"/>
|
||||
app:onClick="@{() -> viewmodel.showCreatedUL()}"
|
||||
fab:fab_label="@string/action_show_created_ul" />
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/accettazione_ordine_inevaso_fab_item2"
|
||||
@ -113,15 +115,32 @@
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
fab:fab_label="@string/action_create_ul"
|
||||
app:onClick="@{() -> viewmodel.createNewUL()}" />
|
||||
app:onClick="@{() -> viewmodel.createNewUL()}"
|
||||
fab:fab_label="@string/action_create_ul" />
|
||||
|
||||
</com.github.clans.fab.FloatingActionMenu>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/empty_space_padding"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<View
|
||||
android:id="@+id/shadow"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="16dp"
|
||||
android:background="@drawable/shape_gradient_top_shadow"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
app:layout_anchor="@id/bottom_sheet_include" />
|
||||
|
||||
<include
|
||||
android:id="@+id/bottom_sheet_include"
|
||||
layout="@layout/fragment_articoli_in_collo_bottom_sheet"></include>
|
||||
|
||||
239
app/src/main/res/layout/dialog_input_quantity_articolo.xml
Normal file
239
app/src/main/res/layout/dialog_input_quantity_articolo.xml
Normal file
@ -0,0 +1,239 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO.Riga"/>
|
||||
<variable
|
||||
name="quantityViewModel"
|
||||
type="it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO"/>
|
||||
|
||||
<import type="android.support.v4.content.ContextCompat" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.MainApplication" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.R" />
|
||||
|
||||
<import type="android.databinding.adapters.Converters"/>
|
||||
|
||||
<import type="android.graphics.Color" />
|
||||
|
||||
</data>
|
||||
|
||||
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintWidth_percent="0.3">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/dialog_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:text='@{(viewmodel.codArtFor != null ? viewmodel.codArtFor : viewmodel.mtbAart.codMart) + (viewmodel.partitaMag != null ? " (" + viewmodel.partitaMag + ")" : "") }'
|
||||
android:textColor="#000"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="AV25D200010B"/>
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:paddingLeft="8dp"
|
||||
android:text='@{viewmodel.mtbAart.untMis != null ? "(" + viewmodel.mtbAart.untMis + ")" : ""}'
|
||||
android:textColor="#000"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="(PZ)"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/dialog_title"
|
||||
android:layout_marginTop="6dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/description"
|
||||
android:textSize="16sp"
|
||||
tools:text="Descrizione" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewmodel.mtbAart.descrizioneEstesa}"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="RAD 25 D H/L 200 - 10 EL B BIANCO" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/ordered"
|
||||
android:textSize="16sp"
|
||||
tools:text="Ordinati" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text='@{String.format("%.2f", viewmodel.qtaOrd)}'
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingLeft="4dp"
|
||||
tools:text="1200" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:text="@string/dispatched"
|
||||
android:textSize="16sp"
|
||||
android:visibility="@{quantityViewModel.qtaEvasa.get() == 0 ? View.GONE : View.VISIBLE}"
|
||||
tools:text="Evasi" />
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text='@{String.format("%.2f", quantityViewModel.qtaEvasa.get())}'
|
||||
android:visibility="@{quantityViewModel.qtaEvasa.get() == 0 ? View.GONE : View.VISIBLE}"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingLeft="4dp"
|
||||
tools:text="1200" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:enabled="@{quantityViewModel.canPartitaMagBeChanged}"
|
||||
app:hintTextAppearance="@style/hint_text">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/input_partita_mag"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:hint="@string/batch_lot"
|
||||
app:binding="@{quantityViewModel.batchLot}"/>
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="3">
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/input_num_cnf"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:enabled="@{!(quantityViewModel.blockedQtaTot.get() && quantityViewModel.blockedQtaPerCnf.get())}">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="numberDecimal"
|
||||
android:hint="@string/num_pcks"
|
||||
android:gravity="end"
|
||||
app:binding="@{quantityViewModel.numCnf}" />
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:id="@+id/input_qta_cnf"
|
||||
android:enabled="@{!(quantityViewModel.blockedQtaTot.get() && quantityViewModel.blockedNumDiCnf.get())}">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="numberDecimal"
|
||||
android:hint="@string/qty_x_pck"
|
||||
android:gravity="end"
|
||||
app:binding="@{quantityViewModel.qtaCnf}"/>
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:id="@+id/input_qta_tot"
|
||||
android:enabled="@{!(quantityViewModel.blockedNumDiCnf.get() && quantityViewModel.blockedQtaPerCnf.get())}">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="numberDecimal"
|
||||
android:hint="@string/tot_qty"
|
||||
android:gravity="end"
|
||||
app:binding="@{quantityViewModel.qtaTot}"/>
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
</layout>
|
||||
@ -9,7 +9,7 @@
|
||||
<import type="android.view.View" />
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/bottom_sheet1"
|
||||
@ -45,7 +45,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableStart="@drawable/ic_box"
|
||||
android:text=" 0 REFERENCES"
|
||||
android:text="REFERENCES"
|
||||
android:drawablePadding="12dp"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
@ -55,23 +56,37 @@
|
||||
android:theme="@style/white_button"
|
||||
android:textSize="16sp"/>
|
||||
|
||||
<android.support.v7.widget.AppCompatButton
|
||||
<Button
|
||||
android:id="@+id/articoli_in_collo_close_collo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableEnd="@drawable/ic_close_24dp"
|
||||
android:drawableTint="@color/red_600"
|
||||
android:text="@string/action_close_ul"
|
||||
android:textColor="@color/red_600"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:elevation="0dp"
|
||||
android:theme="@style/white_button"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:textSize="16sp"
|
||||
android:onClick="@{() -> viewModel.closeCurrentUL()}"/>
|
||||
android:layout_alignParentEnd="true"
|
||||
android:theme="@style/white_button"
|
||||
android:drawableEnd="@drawable/ic_close_red_24dp"
|
||||
android:drawablePadding="8dp"
|
||||
android:onClick="@{() -> viewModel.closeCurrentUL()}"
|
||||
android:drawableTint="@color/red_600"
|
||||
android:textColor="@color/red_600"/>
|
||||
|
||||
<!--<android.support.v7.widget.AppCompatButton-->
|
||||
<!--android:id="@+id/articoli_in_collo_close_collo"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:drawableEnd="@drawable/ic_close_red_24dp"-->
|
||||
<!--android:drawableTint="@color/red_600"-->
|
||||
<!--android:text="@string/action_close_ul"-->
|
||||
<!--android:textColor="@color/red_600"-->
|
||||
<!--android:paddingTop="8dp"-->
|
||||
<!--android:paddingBottom="8dp"-->
|
||||
<!--android:paddingLeft="16dp"-->
|
||||
<!--android:paddingRight="16dp"-->
|
||||
<!--android:elevation="0dp"-->
|
||||
<!--android:theme="@style/white_button"-->
|
||||
<!--android:layout_alignParentEnd="true"-->
|
||||
<!--android:textSize="16sp"-->
|
||||
<!--android:onClick="@{() -> viewModel.closeCurrentUL()}"/>-->
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
@ -266,7 +281,7 @@
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:tint="@color/white_pressed"
|
||||
android:tint="@color/empty_view_gray"
|
||||
android:src="@drawable/ic_info_78dp"/>
|
||||
|
||||
<android.support.v7.widget.AppCompatTextView
|
||||
@ -275,7 +290,7 @@
|
||||
android:text="@string/empty_rows_in_mtbcolt"
|
||||
android:textSize="20sp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white_pressed"/>
|
||||
android:textColor="@color/empty_view_gray"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -351,5 +366,5 @@
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
</layout>
|
||||
@ -67,7 +67,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@{`Lotto: ` + mtbColr.partitaMag + (mtbColr.dataScadPartita != null ? `(` + mtbColr.dataScadPartita + `)` : ``)}"
|
||||
android:text="@{`Lotto: ` + mtbColr.partitaMag + (mtbColr.getDataScadPartitaS() != null ? `(` + mtbColr.getDataScadPartitaS() + `)` : ``)}"
|
||||
tools:text="Lotto: 030716"
|
||||
android:visibility="@{mtbColr.partitaMag == null ? View.GONE : View.VISIBLE}"/>
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
<string name="action_customize_server_settings">Personalizza impostazioni azienda</string>
|
||||
|
||||
<string name="no_description">Nessuna descrizione</string>
|
||||
<string name="description">Descrizione</string>
|
||||
<string name="stock">Stock</string>
|
||||
<string name="action_filter">Filtra</string>
|
||||
<string name="action_orderBy">Ordina</string>
|
||||
@ -67,5 +68,18 @@
|
||||
|
||||
<string name="empty_rows_in_mtbcolt">Nessuna riga presente nell\'Unità Logistica</string>
|
||||
|
||||
<string name="lu_creation">Creazione UL</string>
|
||||
|
||||
<string name="quantity_short">Qtà</string>
|
||||
|
||||
<string name="ordered">Ordinati</string>
|
||||
<string name="to_dispatch">Da evadere</string>
|
||||
|
||||
<string name="batch_lot">Lotto</string>
|
||||
<string name="num_pcks">Num cnf</string>
|
||||
<string name="qty_x_pck"><![CDATA[Qtà x cnf]]></string>
|
||||
<string name="tot_qty"><![CDATA[Qtà tot]]></string>
|
||||
|
||||
<string name="saving">Salvataggio</string>
|
||||
<string name="data_saved">Salvataggio completato</string>
|
||||
</resources>
|
||||
@ -15,12 +15,16 @@
|
||||
<color name="white_pressed">#f1f1f1</color>
|
||||
<color name="half_black">#808080</color>
|
||||
|
||||
<!-- EMPTY VIEW -->
|
||||
<color name="empty_view_gray">#bdbdbd</color>
|
||||
|
||||
|
||||
|
||||
|
||||
<color name="blue_700">#1976D2</color>
|
||||
|
||||
|
||||
<color name="green_500_with_alpha">#884CAF50</color>
|
||||
<color name="green_500">#4CAF50</color>
|
||||
<color name="green_600">#43A047</color>
|
||||
<color name="green_700">#388E3C</color>
|
||||
@ -32,6 +36,7 @@
|
||||
<color name="indigo_700">#303F9F</color>
|
||||
|
||||
|
||||
<color name="orange_600_with_alpha">#88FB8C00</color>
|
||||
<color name="orange_600">#FB8C00</color>
|
||||
|
||||
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
<string name="abort">Abort</string>
|
||||
<string name="dispatched">Dispatched</string>
|
||||
<string name="no_description">No description</string>
|
||||
<string name="description">Description</string>
|
||||
<string name="stock">Stock</string>
|
||||
<string name="action_filter">Filter</string>
|
||||
<string name="action_orderBy">Order</string>
|
||||
@ -74,6 +75,19 @@
|
||||
|
||||
<string name="empty_rows_in_mtbcolt">No rows found in LU</string>
|
||||
|
||||
<string name="lu_creation">LU Creation</string>
|
||||
|
||||
<string name="quantity_short">Qty</string>
|
||||
|
||||
<string name="ordered">Ordered</string>
|
||||
<string name="to_dispatch">To dispatch</string>
|
||||
|
||||
<string name="batch_lot">Batch lot</string>
|
||||
<string name="num_pcks">Pcks num</string>
|
||||
<string name="qty_x_pck">Qty x pck</string>
|
||||
<string name="tot_qty">Tot qty</string>
|
||||
|
||||
<string name="saving">Saving</string>
|
||||
<string name="data_saved">Data saved</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@ -6,6 +6,9 @@
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
|
||||
<item name="fontFamily">@font/open_sans_regular</item> <!-- target android sdk versions < 26 and > 14 if theme other than AppCompat -->
|
||||
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.NoActionBar">
|
||||
@ -35,6 +38,17 @@
|
||||
</style>
|
||||
|
||||
|
||||
<style name="giovanna" parent="TextAppearance.AppCompat">
|
||||
<item name="android:textColor">@color/red_600</item>
|
||||
<item name="colorAccent">@color/red_600</item>
|
||||
<item name="colorControlNormal">@color/red_600</item>
|
||||
<item name="colorControlActivated">@color/red_600</item>
|
||||
<item name="android:textColorHint">@color/red_600</item>
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</resources>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.2.30'
|
||||
repositories {
|
||||
jcenter()
|
||||
maven {
|
||||
@ -11,6 +12,7 @@ buildscript {
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.1.3'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user