diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml new file mode 100644 index 00000000..a06c805b --- /dev/null +++ b/.idea/assetWizardSettings.xml @@ -0,0 +1,46 @@ + + + + + + \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 25578976..f32d8f4d 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index 834f6cac..636a418b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,14 +3,14 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { applicationId "it.integry.integrywmsnative" minSdkVersion 21 - targetSdkVersion 27 - versionCode 1 - versionName "1.0" + targetSdkVersion 28 + versionCode 4 + versionName "1.0.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { @@ -36,13 +36,13 @@ dependencies { }) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.orhanobut:logger:2.2.0' - 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' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:support-v4:28.0.0' + implementation 'com.android.support:design:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' - implementation 'com.android.support:cardview-v7:27.1.1' - implementation 'com.android.support:recyclerview-v7:27.1.1' - implementation 'com.android.support:preference-v7:27.1.1' + implementation 'com.android.support:cardview-v7:28.0.0' + implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'com.android.support:preference-v7:28.0.0' implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.0.0' implementation 'org.parceler:parceler-api:1.1.10' @@ -72,6 +72,13 @@ dependencies { testImplementation 'junit:junit:4.12' implementation project(':waterfall_toolbar') implementation 'com.mikhaellopez:lazydatepicker:1.0.0' + implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2' + + //AppUpdate + implementation 'com.github.javiersantos:AppUpdater:2.7' + + + //Barcode implementation project(':pointmobilescannerlibrary') implementation project(path: ':barcode_base_library') } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e87ec309..062f1753 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,8 @@ android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/Light" - android:windowSoftInputMode="adjustPan"> + android:windowSoftInputMode="adjustPan" + android:screenOrientation="portrait"> @@ -28,21 +29,26 @@ diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index c9926fa6..1f5340a0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -1,6 +1,7 @@ package it.integry.integrywmsnative; import android.content.Intent; +import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; @@ -11,10 +12,13 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.Toolbar; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import butterknife.BindView; @@ -25,7 +29,9 @@ import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.update.UpdatesManager; import it.integry.integrywmsnative.core.utility.UtilitySettings; +import it.integry.integrywmsnative.databinding.ActivityMainBinding; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.gest.login.LoginActivity; @@ -39,17 +45,10 @@ import it.integry.plugins.waterfalltoolbar.WaterfallToolbar; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { - @BindView(R.id.main_search) SearchView mSearchView; - @BindView(R.id.main_select_all) ImageButton mSelectAll; - @BindView(R.id.main_filter) ImageButton mFilterBtn; - - @BindView(R.id.nav_view) NavigationView mNavigationView; - - @BindView(R.id.waterfall_toolbar) WaterfallToolbar mWaterfallToolbar; - - - + //@BindView(R.id.drawer_username) TextView mDrawerUsername; + //@BindView(R.id.drawer_logoAzienda) ImageView mDrawerLogo; + private ActivityMainBinding mBinding; private boolean firstCheckExecution = true; private boolean mIsOnline = false; @@ -61,24 +60,23 @@ public class MainActivity extends AppCompatActivity if(SettingsManager.i().user.username == null && SettingsManager.i().user.password == null){ startLoginActivity(); } else { - setContentView(R.layout.activity_main); + mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false); + setContentView(mBinding.getRoot()); - ButterKnife.bind(this); + UpdatesManager.init(this); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - DrawerLayout drawer = findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( - this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); - drawer.setDrawerListener(toggle); + this, mBinding.drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + mBinding.drawerLayout.setDrawerListener(toggle); toggle.syncState(); - mNavigationView = findViewById(R.id.nav_view); - mNavigationView.setNavigationItemSelectedListener(this); - - mSearchView.setVisibility(View.GONE); + mBinding.navView.setNavigationItemSelectedListener(this); + mBinding.appBarMain.mainSearch.setVisibility(View.GONE); changeContentFragment(MainFragment.newInstance()); @@ -133,8 +131,8 @@ public class MainActivity extends AppCompatActivity @Override public boolean onNavigationItemSelected(MenuItem item) { - mWaterfallToolbar.resetElevation(); - mWaterfallToolbar.setRecyclerView(null); + mBinding.appBarMain.waterfallToolbar.resetElevation(); + mBinding.appBarMain.waterfallToolbar.setRecyclerView(null); // Handle navigation view item clicks here. Fragment fragment = null; @@ -152,11 +150,12 @@ public class MainActivity extends AppCompatActivity } else if (id == R.id.nav_manage) { fragment = VersamentoMerceFragment.newInstance(); this.adaptViewToFragment(fragment); - } else if (id == R.id.nav_share) { + } + /*else if (id == R.id.nav_share) { } else if (id == R.id.nav_send) { - } + }*/ else if(id == R.id.nav_settings){ @@ -186,11 +185,11 @@ public class MainActivity extends AppCompatActivity private void adaptViewToFragment(Fragment fragment){ if(fragment instanceof SearchView.OnQueryTextListener) { - mSearchView.setOnQueryTextListener((SearchView.OnQueryTextListener) fragment); - mSearchView.setVisibility(View.VISIBLE); + mBinding.appBarMain.mainSearch.setOnQueryTextListener((SearchView.OnQueryTextListener) fragment); + mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE); } else { - mSearchView.setOnQueryTextListener(null); - mSearchView.setVisibility(View.GONE); + mBinding.appBarMain.mainSearch.setOnQueryTextListener(null); + mBinding.appBarMain.mainSearch.setVisibility(View.GONE); } @@ -201,23 +200,23 @@ public class MainActivity extends AppCompatActivity } if(fragment instanceof IRecyclerFragment) { - ((IRecyclerFragment) fragment).setWaterfallToolbar(mWaterfallToolbar); + ((IRecyclerFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar); } if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) { - mSelectAll.setVisibility(View.VISIBLE); - mSelectAll.setOnClickListener(v -> ((ISelectAllFragment)fragment).onSelectAll()); + mBinding.appBarMain.mainSelectAll.setVisibility(View.VISIBLE); + mBinding.appBarMain.mainSelectAll.setOnClickListener(v -> ((ISelectAllFragment)fragment).onSelectAll()); } else { - mSelectAll.setVisibility(View.GONE); - mSelectAll.setOnClickListener(null); + mBinding.appBarMain.mainSelectAll.setVisibility(View.GONE); + mBinding.appBarMain.mainSelectAll.setOnClickListener(null); } if(fragment instanceof IFilterableFragment) { - mFilterBtn.setVisibility(View.VISIBLE); - mFilterBtn.setOnClickListener(v -> ((IFilterableFragment)fragment).onFilterClick()); + mBinding.appBarMain.mainFilter.setVisibility(View.VISIBLE); + mBinding.appBarMain.mainFilter.setOnClickListener(v -> ((IFilterableFragment)fragment).onFilterClick()); } else { - mFilterBtn.setVisibility(View.GONE); - mFilterBtn.setOnClickListener(null); + mBinding.appBarMain.mainFilter.setVisibility(View.GONE); + mBinding.appBarMain.mainFilter.setOnClickListener(null); } } @@ -250,6 +249,8 @@ public class MainActivity extends AppCompatActivity SettingsManager.reloadDBVariables(() -> { mIsOnline = true; firstCheckExecution = false; + + onDBLoaded(); }, ex -> { //mNoConnectionLayout.expand(true); if(!mIsOnline) mIsOnline = false; @@ -261,8 +262,18 @@ public class MainActivity extends AppCompatActivity } }); + } + private void onDBLoaded() { + LinearLayout headerLayout = (LinearLayout) mBinding.navView.getHeaderView(0); + + ((TextView) headerLayout.findViewById(R.id.drawer_username)).setText(SettingsManager.i().user.fullname); + ((TextView) headerLayout.findViewById(R.id.drawer_deposito)).setText(SettingsManager.i().userSession.depo.getCodMdep() + " - " + SettingsManager.i().userSession.depo.getDescrizione()); + + if(SettingsManager.iDB().getDatiAzienda().isLogoAvailable()) { + ((ImageView) headerLayout.findViewById(R.id.drawer_logoAzienda)).setImageBitmap(SettingsManager.iDB().getDatiAzienda().getLogo()); + } } } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index 13d746ae..1457a234 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -13,6 +13,7 @@ import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.Stash; +import it.integry.integrywmsnative.core.update.UpdatesManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; @@ -40,9 +41,6 @@ public class MainApplication extends Application { res = getResources(); Context = this; - - - } // Called by the system when the device configuration changes while your component is running. diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java index 9f2f7bb5..c9755991 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java @@ -54,8 +54,26 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - public static void createColloLavorazione(RunnableArgs onComplete, RunnableArgs onFailed) { + + public static void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed){ + + EntityRESTConsumer.processEntity(mtbColtToSave, new ISimpleOperationCallback() { + @Override + public void onSuccess(MtbColt value) { + if(onComplete != null) onComplete.run(value); + } + + @Override + public void onFailed(Exception ex) { + if(onFailed != null) onFailed.run(ex); + } + }, MtbColt.class); + + } + + public static void createColloLavorazione(int segno, RunnableArgs onComplete, RunnableArgs onFailed) { MtbColt mtbColtToCreate = new MtbColt() + .setSegno(segno) .setGestione(GestioneEnum.LAVORAZIONE); mtbColtToCreate @@ -76,12 +94,17 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } - public static void createColloFromEtichettaAnonima(BarcodeScanDTO barcodeScanDTO, String gestione, RunnableArgs onComplete, RunnableArgs onFailed) { + public static void createColloFromEtichettaAnonima(BarcodeScanDTO barcodeScanDTO, GestioneEnum gestione, RunnableArgs onComplete, RunnableArgs onFailed) { + createColloFromEtichettaAnonima(barcodeScanDTO.getStringValue(), gestione, onComplete, onFailed); + } + + + public static void createColloFromEtichettaAnonima(String barcode, GestioneEnum gestione, RunnableArgs onComplete, RunnableArgs onFailed) { MtbColt mtbColtToCreate = new MtbColt() .setGestione(gestione); - Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO); + Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode); String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE; if(customNumCollo != null) { @@ -180,15 +203,22 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } mtbColr.setMtbAart(foundMtbAart); + mtbColr.setGestione(mtbColt.getGestione()); + mtbColr.setSerCollo(mtbColt.getSerCollo()); + mtbColr.setNumCollo(mtbColt.getNumCollo()); + mtbColr.setDataCollo(mtbColt.getDataColloS()); } + + + onComplete.run(mtbColt); } }, onFailed); + } else { + onComplete.run(mtbColt); } - onComplete.run(mtbColt); - }, onFailed); @@ -241,6 +271,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ } + + public static void changePosizione(MtbColt testata, MtbDepoPosizione posizione, Runnable onComplete, RunnableArgs onFailed) { testata.setOperation(CommonModelConsts.OPERATION.UPDATE); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java index b8f9d5ce..94d8e468 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java @@ -4,12 +4,14 @@ import android.text.TextUtils; import android.util.Log; import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.lang.reflect.Type; +import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.core.CommonConst; @@ -19,6 +21,8 @@ import it.integry.integrywmsnative.core.REST.model.MailRequestDTO; import it.integry.integrywmsnative.core.REST.model.NativeSqlRequestDTO; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.Azienda; +import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -149,4 +153,24 @@ public class SystemRESTConsumer extends _BaseRESTConsumer { }); } + + + public static void getAzienda(RunnableArgs onComplete, RunnableArgs onFailed) { + + String sql = "SELECT TOP 1 * FROM azienda"; + + Type typeOfObjectsList = new TypeToken>() {}.getType(); + SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { + @Override + public void onSuccess(List value) { + if(onComplete != null) onComplete.run(value.get(0)); + } + + @Override + public void onFailed(Exception ex) { + if(onFailed != null) onFailed.run(ex); + } + }); + + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/Azienda.java b/app/src/main/java/it/integry/integrywmsnative/core/model/Azienda.java new file mode 100644 index 00000000..d0b4e967 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/Azienda.java @@ -0,0 +1,711 @@ +package it.integry.integrywmsnative.core.model; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.util.Base64; + +import java.math.BigDecimal; + +import it.integry.integrywmsnative.core.utility.UtilityString; + +public class Azienda { + + private String nomeDitta; + private String indirizzo; + private String cap; + private String citta; + private String prov; + private String partIva; + private String numTel; + private String numFax; + private String eMail; + private Integer annoContab; + private Integer annoMagaz; + private Integer annoAttuale; + private String ultDataGio; + private Integer ultNumGio; + private String ribaRSoc1; + private String ribaRSoc2; + private String ribaRSocBreve; + private String dataInizMsg; + private String dataFineMsg; + private String messaggioDoc; + private String liquidazioniIva; + private String lastUpgDb; + private String logoFile; + private String logoB64; + private BigDecimal ultDareAv; + private Integer sollTop; + private Integer sollLeft; + private Integer ggUtili; + private String codSia; + private String flagFattDiff; + private String sollHeadPersonal; + private String lastUpgSp; + private String sitoWeb; + private BigDecimal capitaleSoc; + private String cciaa; + private String iscRegImp; + private String ragSocMod; + private String prefissoEan; + private String codFiscale; + private String persFisicaCognome; + private String persFisicaNome; + private String persFisicaSesso; + private String persFisicaDataNascita; + private String persFisicaComuneNascita; + private String persFisicaProvNascita; + private String flagPersFisica; + private String persFisicaCodFisc; + private String rapprLegale; + private String rapprLegaleCodFisc; + private String sedeAmm; + private String flagSetIvaOmaggi; + private String applicationName; + private String flagTipoFatturazione; + private String tribunale; + private Integer settRitardoAnno; + private String dbDistributore; + private String coStringco; + private String lastUpgQc; + private String tipoAzienda; + private String nazione; + private String codDiviContab; + private String codIvaOmaggi; + private String codCconQuadra; + + /** + * Regime Fiscale + */ + private String regFisc; + private String statoLiquidazione; + + /** + * Indirizzo PEC Sistema di Interscambio + */ + + private String emailSdi; + + /** + * Indirizzo PEC di invio mail verso lo SDI + */ + + private String fromEmailSdi; + + + public String getNomeDitta() { + return nomeDitta; + } + + public Azienda setNomeDitta(String nomeDitta) { + this.nomeDitta = nomeDitta; + return this; + } + + public String getIndirizzo() { + return indirizzo; + } + + public Azienda setIndirizzo(String indirizzo) { + this.indirizzo = indirizzo; + return this; + } + + public String getCap() { + return cap; + } + + public Azienda setCap(String cap) { + this.cap = cap; + return this; + } + + public String getCitta() { + return citta; + } + + public Azienda setCitta(String citta) { + this.citta = citta; + return this; + } + + public String getProv() { + return prov; + } + + public Azienda setProv(String prov) { + this.prov = prov; + return this; + } + + public String getPartIva() { + return partIva; + } + + public Azienda setPartIva(String partIva) { + this.partIva = partIva; + return this; + } + + public String getNumTel() { + return numTel; + } + + public Azienda setNumTel(String numTel) { + this.numTel = numTel; + return this; + } + + public String getNumFax() { + return numFax; + } + + public Azienda setNumFax(String numFax) { + this.numFax = numFax; + return this; + } + + public String geteMail() { + return eMail; + } + + public Azienda seteMail(String eMail) { + this.eMail = eMail; + return this; + } + + public Integer getAnnoContab() { + return annoContab; + } + + public Azienda setAnnoContab(Integer annoContab) { + this.annoContab = annoContab; + return this; + } + + public Integer getAnnoMagaz() { + return annoMagaz; + } + + public Azienda setAnnoMagaz(Integer annoMagaz) { + this.annoMagaz = annoMagaz; + return this; + } + + public Integer getAnnoAttuale() { + return annoAttuale; + } + + public Azienda setAnnoAttuale(Integer annoAttuale) { + this.annoAttuale = annoAttuale; + return this; + } + + public String getUltDataGio() { + return ultDataGio; + } + + public Azienda setUltDataGio(String ultDataGio) { + this.ultDataGio = ultDataGio; + return this; + } + + public Integer getUltNumGio() { + return ultNumGio; + } + + public Azienda setUltNumGio(Integer ultNumGio) { + this.ultNumGio = ultNumGio; + return this; + } + + public String getRibaRSoc1() { + return ribaRSoc1; + } + + public Azienda setRibaRSoc1(String ribaRSoc1) { + this.ribaRSoc1 = ribaRSoc1; + return this; + } + + public String getRibaRSoc2() { + return ribaRSoc2; + } + + public Azienda setRibaRSoc2(String ribaRSoc2) { + this.ribaRSoc2 = ribaRSoc2; + return this; + } + + public String getRibaRSocBreve() { + return ribaRSocBreve; + } + + public Azienda setRibaRSocBreve(String ribaRSocBreve) { + this.ribaRSocBreve = ribaRSocBreve; + return this; + } + + public String getDataInizMsg() { + return dataInizMsg; + } + + public Azienda setDataInizMsg(String dataInizMsg) { + this.dataInizMsg = dataInizMsg; + return this; + } + + public String getDataFineMsg() { + return dataFineMsg; + } + + public Azienda setDataFineMsg(String dataFineMsg) { + this.dataFineMsg = dataFineMsg; + return this; + } + + public String getMessaggioDoc() { + return messaggioDoc; + } + + public Azienda setMessaggioDoc(String messaggioDoc) { + this.messaggioDoc = messaggioDoc; + return this; + } + + public String getLiquidazioniIva() { + return liquidazioniIva; + } + + public Azienda setLiquidazioniIva(String liquidazioniIva) { + this.liquidazioniIva = liquidazioniIva; + return this; + } + + public String getLastUpgDb() { + return lastUpgDb; + } + + public Azienda setLastUpgDb(String lastUpgDb) { + this.lastUpgDb = lastUpgDb; + return this; + } + + public String getLogoFile() { + return logoFile; + } + + public Azienda setLogoFile(String logoFile) { + this.logoFile = logoFile; + return this; + } + + public String getLogoB64() { + return logoB64; + } + + public boolean isLogoAvailable() { + return !UtilityString.isNullOrEmpty(getLogoB64()); + } + + public Bitmap getLogo() { + if(getLogoB64() != null) { + byte[] decodedString = Base64.decode(getLogoB64(), Base64.DEFAULT); + Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); + return decodedByte; + } else return null; + + } + + public Azienda setLogoB64(String logoB64) { + this.logoB64 = logoB64; + return this; + } + + public BigDecimal getUltDareAv() { + return ultDareAv; + } + + public Azienda setUltDareAv(BigDecimal ultDareAv) { + this.ultDareAv = ultDareAv; + return this; + } + + public Integer getSollTop() { + return sollTop; + } + + public Azienda setSollTop(Integer sollTop) { + this.sollTop = sollTop; + return this; + } + + public Integer getSollLeft() { + return sollLeft; + } + + public Azienda setSollLeft(Integer sollLeft) { + this.sollLeft = sollLeft; + return this; + } + + public Integer getGgUtili() { + return ggUtili; + } + + public Azienda setGgUtili(Integer ggUtili) { + this.ggUtili = ggUtili; + return this; + } + + public String getCodSia() { + return codSia; + } + + public Azienda setCodSia(String codSia) { + this.codSia = codSia; + return this; + } + + public String getFlagFattDiff() { + return flagFattDiff; + } + + public Azienda setFlagFattDiff(String flagFattDiff) { + this.flagFattDiff = flagFattDiff; + return this; + } + + public String getSollHeadPersonal() { + return sollHeadPersonal; + } + + public Azienda setSollHeadPersonal(String sollHeadPersonal) { + this.sollHeadPersonal = sollHeadPersonal; + return this; + } + + public String getLastUpgSp() { + return lastUpgSp; + } + + public Azienda setLastUpgSp(String lastUpgSp) { + this.lastUpgSp = lastUpgSp; + return this; + } + + public String getSitoWeb() { + return sitoWeb; + } + + public Azienda setSitoWeb(String sitoWeb) { + this.sitoWeb = sitoWeb; + return this; + } + + public BigDecimal getCapitaleSoc() { + return capitaleSoc; + } + + public Azienda setCapitaleSoc(BigDecimal capitaleSoc) { + this.capitaleSoc = capitaleSoc; + return this; + } + + public String getCciaa() { + return cciaa; + } + + public Azienda setCciaa(String cciaa) { + this.cciaa = cciaa; + return this; + } + + public String getIscRegImp() { + return iscRegImp; + } + + public Azienda setIscRegImp(String iscRegImp) { + this.iscRegImp = iscRegImp; + return this; + } + + public String getRagSocMod() { + return ragSocMod; + } + + public Azienda setRagSocMod(String ragSocMod) { + this.ragSocMod = ragSocMod; + return this; + } + + public String getPrefissoEan() { + return prefissoEan; + } + + public Azienda setPrefissoEan(String prefissoEan) { + this.prefissoEan = prefissoEan; + return this; + } + + public String getCodFiscale() { + return codFiscale; + } + + public Azienda setCodFiscale(String codFiscale) { + this.codFiscale = codFiscale; + return this; + } + + public String getPersFisicaCognome() { + return persFisicaCognome; + } + + public Azienda setPersFisicaCognome(String persFisicaCognome) { + this.persFisicaCognome = persFisicaCognome; + return this; + } + + public String getPersFisicaNome() { + return persFisicaNome; + } + + public Azienda setPersFisicaNome(String persFisicaNome) { + this.persFisicaNome = persFisicaNome; + return this; + } + + public String getPersFisicaSesso() { + return persFisicaSesso; + } + + public Azienda setPersFisicaSesso(String persFisicaSesso) { + this.persFisicaSesso = persFisicaSesso; + return this; + } + + public String getPersFisicaDataNascita() { + return persFisicaDataNascita; + } + + public Azienda setPersFisicaDataNascita(String persFisicaDataNascita) { + this.persFisicaDataNascita = persFisicaDataNascita; + return this; + } + + public String getPersFisicaComuneNascita() { + return persFisicaComuneNascita; + } + + public Azienda setPersFisicaComuneNascita(String persFisicaComuneNascita) { + this.persFisicaComuneNascita = persFisicaComuneNascita; + return this; + } + + public String getPersFisicaProvNascita() { + return persFisicaProvNascita; + } + + public Azienda setPersFisicaProvNascita(String persFisicaProvNascita) { + this.persFisicaProvNascita = persFisicaProvNascita; + return this; + } + + public String getFlagPersFisica() { + return flagPersFisica; + } + + public Azienda setFlagPersFisica(String flagPersFisica) { + this.flagPersFisica = flagPersFisica; + return this; + } + + public String getPersFisicaCodFisc() { + return persFisicaCodFisc; + } + + public Azienda setPersFisicaCodFisc(String persFisicaCodFisc) { + this.persFisicaCodFisc = persFisicaCodFisc; + return this; + } + + public String getRapprLegale() { + return rapprLegale; + } + + public Azienda setRapprLegale(String rapprLegale) { + this.rapprLegale = rapprLegale; + return this; + } + + public String getRapprLegaleCodFisc() { + return rapprLegaleCodFisc; + } + + public Azienda setRapprLegaleCodFisc(String rapprLegaleCodFisc) { + this.rapprLegaleCodFisc = rapprLegaleCodFisc; + return this; + } + + public String getSedeAmm() { + return sedeAmm; + } + + public Azienda setSedeAmm(String sedeAmm) { + this.sedeAmm = sedeAmm; + return this; + } + + public String getFlagSetIvaOmaggi() { + return flagSetIvaOmaggi; + } + + public Azienda setFlagSetIvaOmaggi(String flagSetIvaOmaggi) { + this.flagSetIvaOmaggi = flagSetIvaOmaggi; + return this; + } + + public String getApplicationName() { + return applicationName; + } + + public Azienda setApplicationName(String applicationName) { + this.applicationName = applicationName; + return this; + } + + public String getFlagTipoFatturazione() { + return flagTipoFatturazione; + } + + public Azienda setFlagTipoFatturazione(String flagTipoFatturazione) { + this.flagTipoFatturazione = flagTipoFatturazione; + return this; + } + + public String getTribunale() { + return tribunale; + } + + public Azienda setTribunale(String tribunale) { + this.tribunale = tribunale; + return this; + } + + public Integer getSettRitardoAnno() { + return settRitardoAnno; + } + + public Azienda setSettRitardoAnno(Integer settRitardoAnno) { + this.settRitardoAnno = settRitardoAnno; + return this; + } + + public String getDbDistributore() { + return dbDistributore; + } + + public Azienda setDbDistributore(String dbDistributore) { + this.dbDistributore = dbDistributore; + return this; + } + + public String getCoStringco() { + return coStringco; + } + + public Azienda setCoStringco(String coStringco) { + this.coStringco = coStringco; + return this; + } + + public String getLastUpgQc() { + return lastUpgQc; + } + + public Azienda setLastUpgQc(String lastUpgQc) { + this.lastUpgQc = lastUpgQc; + return this; + } + + public String getTipoAzienda() { + return tipoAzienda; + } + + public Azienda setTipoAzienda(String tipoAzienda) { + this.tipoAzienda = tipoAzienda; + return this; + } + + public String getNazione() { + return nazione; + } + + public Azienda setNazione(String nazione) { + this.nazione = nazione; + return this; + } + + public String getCodDiviContab() { + return codDiviContab; + } + + public Azienda setCodDiviContab(String codDiviContab) { + this.codDiviContab = codDiviContab; + return this; + } + + public String getCodIvaOmaggi() { + return codIvaOmaggi; + } + + public Azienda setCodIvaOmaggi(String codIvaOmaggi) { + this.codIvaOmaggi = codIvaOmaggi; + return this; + } + + public String getCodCconQuadra() { + return codCconQuadra; + } + + public Azienda setCodCconQuadra(String codCconQuadra) { + this.codCconQuadra = codCconQuadra; + return this; + } + + public String getRegFisc() { + return regFisc; + } + + public Azienda setRegFisc(String regFisc) { + this.regFisc = regFisc; + return this; + } + + public String getStatoLiquidazione() { + return statoLiquidazione; + } + + public Azienda setStatoLiquidazione(String statoLiquidazione) { + this.statoLiquidazione = statoLiquidazione; + return this; + } + + public String getEmailSdi() { + return emailSdi; + } + + public Azienda setEmailSdi(String emailSdi) { + this.emailSdi = emailSdi; + return this; + } + + public String getFromEmailSdi() { + return fromEmailSdi; + } + + public Azienda setFromEmailSdi(String fromEmailSdi) { + this.fromEmailSdi = fromEmailSdi; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/DtbOrdt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbOrdt.java new file mode 100644 index 00000000..43d0db37 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbOrdt.java @@ -0,0 +1,1018 @@ +package it.integry.integrywmsnative.core.model; + +import java.math.BigDecimal; + +public class DtbOrdt extends EntityBase { + + private String dataOrd; + private String gestione; + private Integer numOrd; + private BigDecimal acconto; + private String activityId; + private String activityTypeId; + private String aspettoBeni; + private String causaleTrasp; + private String codAbi; + private String codAnag; + private String codAuto; + private String codBanc; + private String codBancAzi; + private String codCab; + private String codDgrpArt; + private String codDivi; + private String codEtic; + private String codFornTd; + private String codJcom; + private String codJfas; + private String codMdep; + private String codPaga; + private String codProd; + private String codTcolUi; + private String codTcolUl; + private String codVage; + private String codVage2; + private String codVdes; + private String codVvet; + private String codVvet2; + private String codVzon; + private BigDecimal colliPedana; + private String compilatoDa; + private String controllatoDa; + private String dataConsProd; + private String dataConsProdMax; + private String dataEsportazione; + private String dataConferma; + private String dataInizProd; + private String dataInizTrasp; + private String dataInsOrd; + private String dataOrdRif; + private String rifDdataOrd; + private String dataRicezione; + private String dataRifScad; + private String dataUltMod; + private String descrEstesaProd; + private String descrizionePaga; + private String descrizioneProd; + private String eanFidelity; + private String flagAnnulla; + private String flagEscRoyal; + private String flagEvasoForzato; + private String flagEvasoProd; + private String flagPrzScontati; + private String flagSospeso; + private String flagTipologia; + private String gestioneRif; + private String itemId; + private String listino; + private Integer livello; + private String mezzo; + private String modificatoDa; + private BigDecimal nettoMerce; + private BigDecimal nolo; + private String note; + private String numColli; + private String numCons; + private Integer numFase; + private Integer numOrdProvv; + private Integer numOrdRif; + private Integer rifNumOrd; + private String partitaMag; + private BigDecimal percEsclStat; + private String personaRif; + private String peso; + private String porto; + private BigDecimal qtaEvasaProd; + private BigDecimal qtaPrenotataRep; + private BigDecimal qtaProd; + private BigDecimal rapConvProd; + private String rfid; + private String rifOrd; + private Integer rigaOrdRif; + private BigDecimal sconto1; + private BigDecimal sconto2; + private BigDecimal sconto3; + private BigDecimal sconto4; + private String serie; + private String termCons; + private String tipoAnag; + private Integer totFasi; + private BigDecimal totImponib; + private BigDecimal totIva; + private BigDecimal totMerce; + private BigDecimal totOmaggi; + private BigDecimal totProvvig; + private String untMisProd; + private String flagPrzIva; + private String noteConferma; + private String codJflav; + + + public String getDataOrd() { + return dataOrd; + } + + public DtbOrdt setDataOrd(String dataOrd) { + this.dataOrd = dataOrd; + return this; + } + + public String getGestione() { + return gestione; + } + + public DtbOrdt setGestione(String gestione) { + this.gestione = gestione; + return this; + } + + public Integer getNumOrd() { + return numOrd; + } + + public DtbOrdt setNumOrd(Integer numOrd) { + this.numOrd = numOrd; + return this; + } + + public BigDecimal getAcconto() { + return acconto; + } + + public DtbOrdt setAcconto(BigDecimal acconto) { + this.acconto = acconto; + return this; + } + + public String getActivityId() { + return activityId; + } + + public DtbOrdt setActivityId(String activityId) { + this.activityId = activityId; + return this; + } + + public String getActivityTypeId() { + return activityTypeId; + } + + public DtbOrdt setActivityTypeId(String activityTypeId) { + this.activityTypeId = activityTypeId; + return this; + } + + public String getAspettoBeni() { + return aspettoBeni; + } + + public DtbOrdt setAspettoBeni(String aspettoBeni) { + this.aspettoBeni = aspettoBeni; + return this; + } + + public String getCausaleTrasp() { + return causaleTrasp; + } + + public DtbOrdt setCausaleTrasp(String causaleTrasp) { + this.causaleTrasp = causaleTrasp; + return this; + } + + public String getCodAbi() { + return codAbi; + } + + public DtbOrdt setCodAbi(String codAbi) { + this.codAbi = codAbi; + return this; + } + + public String getCodAnag() { + return codAnag; + } + + public DtbOrdt setCodAnag(String codAnag) { + this.codAnag = codAnag; + return this; + } + + public String getCodAuto() { + return codAuto; + } + + public DtbOrdt setCodAuto(String codAuto) { + this.codAuto = codAuto; + return this; + } + + public String getCodBanc() { + return codBanc; + } + + public DtbOrdt setCodBanc(String codBanc) { + this.codBanc = codBanc; + return this; + } + + public String getCodBancAzi() { + return codBancAzi; + } + + public DtbOrdt setCodBancAzi(String codBancAzi) { + this.codBancAzi = codBancAzi; + return this; + } + + public String getCodCab() { + return codCab; + } + + public DtbOrdt setCodCab(String codCab) { + this.codCab = codCab; + return this; + } + + public String getCodDgrpArt() { + return codDgrpArt; + } + + public DtbOrdt setCodDgrpArt(String codDgrpArt) { + this.codDgrpArt = codDgrpArt; + return this; + } + + public String getCodDivi() { + return codDivi; + } + + public DtbOrdt setCodDivi(String codDivi) { + this.codDivi = codDivi; + return this; + } + + public String getCodEtic() { + return codEtic; + } + + public DtbOrdt setCodEtic(String codEtic) { + this.codEtic = codEtic; + return this; + } + + public String getCodFornTd() { + return codFornTd; + } + + public DtbOrdt setCodFornTd(String codFornTd) { + this.codFornTd = codFornTd; + return this; + } + + public String getCodJcom() { + return codJcom; + } + + public DtbOrdt setCodJcom(String codJcom) { + this.codJcom = codJcom; + return this; + } + + public String getCodJfas() { + return codJfas; + } + + public DtbOrdt setCodJfas(String codJfas) { + this.codJfas = codJfas; + return this; + } + + public String getCodMdep() { + return codMdep; + } + + public DtbOrdt setCodMdep(String codMdep) { + this.codMdep = codMdep; + return this; + } + + public String getCodPaga() { + return codPaga; + } + + public DtbOrdt setCodPaga(String codPaga) { + this.codPaga = codPaga; + return this; + } + + public String getCodProd() { + return codProd; + } + + public DtbOrdt setCodProd(String codProd) { + this.codProd = codProd; + return this; + } + + public String getCodTcolUi() { + return codTcolUi; + } + + public DtbOrdt setCodTcolUi(String codTcolUi) { + this.codTcolUi = codTcolUi; + return this; + } + + public String getCodTcolUl() { + return codTcolUl; + } + + public DtbOrdt setCodTcolUl(String codTcolUl) { + this.codTcolUl = codTcolUl; + return this; + } + + public String getCodVage() { + return codVage; + } + + public DtbOrdt setCodVage(String codVage) { + this.codVage = codVage; + return this; + } + + public String getCodVage2() { + return codVage2; + } + + public DtbOrdt setCodVage2(String codVage2) { + this.codVage2 = codVage2; + return this; + } + + public String getCodVdes() { + return codVdes; + } + + public DtbOrdt setCodVdes(String codVdes) { + this.codVdes = codVdes; + return this; + } + + public String getCodVvet() { + return codVvet; + } + + public DtbOrdt setCodVvet(String codVvet) { + this.codVvet = codVvet; + return this; + } + + public String getCodVvet2() { + return codVvet2; + } + + public DtbOrdt setCodVvet2(String codVvet2) { + this.codVvet2 = codVvet2; + return this; + } + + public String getCodVzon() { + return codVzon; + } + + public DtbOrdt setCodVzon(String codVzon) { + this.codVzon = codVzon; + return this; + } + + public BigDecimal getColliPedana() { + return colliPedana; + } + + public DtbOrdt setColliPedana(BigDecimal colliPedana) { + this.colliPedana = colliPedana; + return this; + } + + public String getCompilatoDa() { + return compilatoDa; + } + + public DtbOrdt setCompilatoDa(String compilatoDa) { + this.compilatoDa = compilatoDa; + return this; + } + + public String getControllatoDa() { + return controllatoDa; + } + + public DtbOrdt setControllatoDa(String controllatoDa) { + this.controllatoDa = controllatoDa; + return this; + } + + public String getDataConsProd() { + return dataConsProd; + } + + public DtbOrdt setDataConsProd(String dataConsProd) { + this.dataConsProd = dataConsProd; + return this; + } + + public String getDataConsProdMax() { + return dataConsProdMax; + } + + public DtbOrdt setDataConsProdMax(String dataConsProdMax) { + this.dataConsProdMax = dataConsProdMax; + return this; + } + + public String getDataEsportazione() { + return dataEsportazione; + } + + public DtbOrdt setDataEsportazione(String dataEsportazione) { + this.dataEsportazione = dataEsportazione; + return this; + } + + public String getDataConferma() { + return dataConferma; + } + + public DtbOrdt setDataConferma(String dataConferma) { + this.dataConferma = dataConferma; + return this; + } + + public String getDataInizProd() { + return dataInizProd; + } + + public DtbOrdt setDataInizProd(String dataInizProd) { + this.dataInizProd = dataInizProd; + return this; + } + + public String getDataInizTrasp() { + return dataInizTrasp; + } + + public DtbOrdt setDataInizTrasp(String dataInizTrasp) { + this.dataInizTrasp = dataInizTrasp; + return this; + } + + public String getDataInsOrd() { + return dataInsOrd; + } + + public DtbOrdt setDataInsOrd(String dataInsOrd) { + this.dataInsOrd = dataInsOrd; + return this; + } + + public String getDataOrdRif() { + return dataOrdRif; + } + + public DtbOrdt setDataOrdRif(String dataOrdRif) { + this.dataOrdRif = dataOrdRif; + return this; + } + + public String getRifDdataOrd() { + return rifDdataOrd; + } + + public DtbOrdt setRifDdataOrd(String rifDdataOrd) { + this.rifDdataOrd = rifDdataOrd; + return this; + } + + public String getDataRicezione() { + return dataRicezione; + } + + public DtbOrdt setDataRicezione(String dataRicezione) { + this.dataRicezione = dataRicezione; + return this; + } + + public String getDataRifScad() { + return dataRifScad; + } + + public DtbOrdt setDataRifScad(String dataRifScad) { + this.dataRifScad = dataRifScad; + return this; + } + + public String getDataUltMod() { + return dataUltMod; + } + + public DtbOrdt setDataUltMod(String dataUltMod) { + this.dataUltMod = dataUltMod; + return this; + } + + public String getDescrEstesaProd() { + return descrEstesaProd; + } + + public DtbOrdt setDescrEstesaProd(String descrEstesaProd) { + this.descrEstesaProd = descrEstesaProd; + return this; + } + + public String getDescrizionePaga() { + return descrizionePaga; + } + + public DtbOrdt setDescrizionePaga(String descrizionePaga) { + this.descrizionePaga = descrizionePaga; + return this; + } + + public String getDescrizioneProd() { + return descrizioneProd; + } + + public DtbOrdt setDescrizioneProd(String descrizioneProd) { + this.descrizioneProd = descrizioneProd; + return this; + } + + public String getEanFidelity() { + return eanFidelity; + } + + public DtbOrdt setEanFidelity(String eanFidelity) { + this.eanFidelity = eanFidelity; + return this; + } + + public String getFlagAnnulla() { + return flagAnnulla; + } + + public DtbOrdt setFlagAnnulla(String flagAnnulla) { + this.flagAnnulla = flagAnnulla; + return this; + } + + public String getFlagEscRoyal() { + return flagEscRoyal; + } + + public DtbOrdt setFlagEscRoyal(String flagEscRoyal) { + this.flagEscRoyal = flagEscRoyal; + return this; + } + + public String getFlagEvasoForzato() { + return flagEvasoForzato; + } + + public DtbOrdt setFlagEvasoForzato(String flagEvasoForzato) { + this.flagEvasoForzato = flagEvasoForzato; + return this; + } + + public String getFlagEvasoProd() { + return flagEvasoProd; + } + + public DtbOrdt setFlagEvasoProd(String flagEvasoProd) { + this.flagEvasoProd = flagEvasoProd; + return this; + } + + public String getFlagPrzScontati() { + return flagPrzScontati; + } + + public DtbOrdt setFlagPrzScontati(String flagPrzScontati) { + this.flagPrzScontati = flagPrzScontati; + return this; + } + + public String getFlagSospeso() { + return flagSospeso; + } + + public DtbOrdt setFlagSospeso(String flagSospeso) { + this.flagSospeso = flagSospeso; + return this; + } + + public String getFlagTipologia() { + return flagTipologia; + } + + public DtbOrdt setFlagTipologia(String flagTipologia) { + this.flagTipologia = flagTipologia; + return this; + } + + public String getGestioneRif() { + return gestioneRif; + } + + public DtbOrdt setGestioneRif(String gestioneRif) { + this.gestioneRif = gestioneRif; + return this; + } + + public String getItemId() { + return itemId; + } + + public DtbOrdt setItemId(String itemId) { + this.itemId = itemId; + return this; + } + + public String getListino() { + return listino; + } + + public DtbOrdt setListino(String listino) { + this.listino = listino; + return this; + } + + public Integer getLivello() { + return livello; + } + + public DtbOrdt setLivello(Integer livello) { + this.livello = livello; + return this; + } + + public String getMezzo() { + return mezzo; + } + + public DtbOrdt setMezzo(String mezzo) { + this.mezzo = mezzo; + return this; + } + + public String getModificatoDa() { + return modificatoDa; + } + + public DtbOrdt setModificatoDa(String modificatoDa) { + this.modificatoDa = modificatoDa; + return this; + } + + public BigDecimal getNettoMerce() { + return nettoMerce; + } + + public DtbOrdt setNettoMerce(BigDecimal nettoMerce) { + this.nettoMerce = nettoMerce; + return this; + } + + public BigDecimal getNolo() { + return nolo; + } + + public DtbOrdt setNolo(BigDecimal nolo) { + this.nolo = nolo; + return this; + } + + public String getNote() { + return note; + } + + public DtbOrdt setNote(String note) { + this.note = note; + return this; + } + + public String getNumColli() { + return numColli; + } + + public DtbOrdt setNumColli(String numColli) { + this.numColli = numColli; + return this; + } + + public String getNumCons() { + return numCons; + } + + public DtbOrdt setNumCons(String numCons) { + this.numCons = numCons; + return this; + } + + public Integer getNumFase() { + return numFase; + } + + public DtbOrdt setNumFase(Integer numFase) { + this.numFase = numFase; + return this; + } + + public Integer getNumOrdProvv() { + return numOrdProvv; + } + + public DtbOrdt setNumOrdProvv(Integer numOrdProvv) { + this.numOrdProvv = numOrdProvv; + return this; + } + + public Integer getNumOrdRif() { + return numOrdRif; + } + + public DtbOrdt setNumOrdRif(Integer numOrdRif) { + this.numOrdRif = numOrdRif; + return this; + } + + public Integer getRifNumOrd() { + return rifNumOrd; + } + + public DtbOrdt setRifNumOrd(Integer rifNumOrd) { + this.rifNumOrd = rifNumOrd; + return this; + } + + public String getPartitaMag() { + return partitaMag; + } + + public DtbOrdt setPartitaMag(String partitaMag) { + this.partitaMag = partitaMag; + return this; + } + + public BigDecimal getPercEsclStat() { + return percEsclStat; + } + + public DtbOrdt setPercEsclStat(BigDecimal percEsclStat) { + this.percEsclStat = percEsclStat; + return this; + } + + public String getPersonaRif() { + return personaRif; + } + + public DtbOrdt setPersonaRif(String personaRif) { + this.personaRif = personaRif; + return this; + } + + public String getPeso() { + return peso; + } + + public DtbOrdt setPeso(String peso) { + this.peso = peso; + return this; + } + + public String getPorto() { + return porto; + } + + public DtbOrdt setPorto(String porto) { + this.porto = porto; + return this; + } + + public BigDecimal getQtaEvasaProd() { + return qtaEvasaProd; + } + + public DtbOrdt setQtaEvasaProd(BigDecimal qtaEvasaProd) { + this.qtaEvasaProd = qtaEvasaProd; + return this; + } + + public BigDecimal getQtaPrenotataRep() { + return qtaPrenotataRep; + } + + public DtbOrdt setQtaPrenotataRep(BigDecimal qtaPrenotataRep) { + this.qtaPrenotataRep = qtaPrenotataRep; + return this; + } + + public BigDecimal getQtaProd() { + return qtaProd; + } + + public DtbOrdt setQtaProd(BigDecimal qtaProd) { + this.qtaProd = qtaProd; + return this; + } + + public BigDecimal getRapConvProd() { + return rapConvProd; + } + + public DtbOrdt setRapConvProd(BigDecimal rapConvProd) { + this.rapConvProd = rapConvProd; + return this; + } + + public String getRfid() { + return rfid; + } + + public DtbOrdt setRfid(String rfid) { + this.rfid = rfid; + return this; + } + + public String getRifOrd() { + return rifOrd; + } + + public DtbOrdt setRifOrd(String rifOrd) { + this.rifOrd = rifOrd; + return this; + } + + public Integer getRigaOrdRif() { + return rigaOrdRif; + } + + public DtbOrdt setRigaOrdRif(Integer rigaOrdRif) { + this.rigaOrdRif = rigaOrdRif; + return this; + } + + public BigDecimal getSconto1() { + return sconto1; + } + + public DtbOrdt setSconto1(BigDecimal sconto1) { + this.sconto1 = sconto1; + return this; + } + + public BigDecimal getSconto2() { + return sconto2; + } + + public DtbOrdt setSconto2(BigDecimal sconto2) { + this.sconto2 = sconto2; + return this; + } + + public BigDecimal getSconto3() { + return sconto3; + } + + public DtbOrdt setSconto3(BigDecimal sconto3) { + this.sconto3 = sconto3; + return this; + } + + public BigDecimal getSconto4() { + return sconto4; + } + + public DtbOrdt setSconto4(BigDecimal sconto4) { + this.sconto4 = sconto4; + return this; + } + + public String getSerie() { + return serie; + } + + public DtbOrdt setSerie(String serie) { + this.serie = serie; + return this; + } + + public String getTermCons() { + return termCons; + } + + public DtbOrdt setTermCons(String termCons) { + this.termCons = termCons; + return this; + } + + public String getTipoAnag() { + return tipoAnag; + } + + public DtbOrdt setTipoAnag(String tipoAnag) { + this.tipoAnag = tipoAnag; + return this; + } + + public Integer getTotFasi() { + return totFasi; + } + + public DtbOrdt setTotFasi(Integer totFasi) { + this.totFasi = totFasi; + return this; + } + + public BigDecimal getTotImponib() { + return totImponib; + } + + public DtbOrdt setTotImponib(BigDecimal totImponib) { + this.totImponib = totImponib; + return this; + } + + public BigDecimal getTotIva() { + return totIva; + } + + public DtbOrdt setTotIva(BigDecimal totIva) { + this.totIva = totIva; + return this; + } + + public BigDecimal getTotMerce() { + return totMerce; + } + + public DtbOrdt setTotMerce(BigDecimal totMerce) { + this.totMerce = totMerce; + return this; + } + + public BigDecimal getTotOmaggi() { + return totOmaggi; + } + + public DtbOrdt setTotOmaggi(BigDecimal totOmaggi) { + this.totOmaggi = totOmaggi; + return this; + } + + public BigDecimal getTotProvvig() { + return totProvvig; + } + + public DtbOrdt setTotProvvig(BigDecimal totProvvig) { + this.totProvvig = totProvvig; + return this; + } + + public String getUntMisProd() { + return untMisProd; + } + + public DtbOrdt setUntMisProd(String untMisProd) { + this.untMisProd = untMisProd; + return this; + } + + public String getFlagPrzIva() { + return flagPrzIva; + } + + public DtbOrdt setFlagPrzIva(String flagPrzIva) { + this.flagPrzIva = flagPrzIva; + return this; + } + + public String getNoteConferma() { + return noteConferma; + } + + public DtbOrdt setNoteConferma(String noteConferma) { + this.noteConferma = noteConferma; + return this; + } + + public String getCodJflav() { + return codJflav; + } + + public DtbOrdt setCodJflav(String codJflav) { + this.codJflav = codJflav; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbCols.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbCols.java index c4938a62..6b029f90 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbCols.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbCols.java @@ -1,5 +1,6 @@ package it.integry.integrywmsnative.core.model; +import java.text.SimpleDateFormat; import java.util.Date; import it.integry.integrywmsnative.core.settings.SettingsManager; @@ -21,6 +22,7 @@ public class MtbCols extends EntityBase { type = "mtb_cols"; setCodMdep(SettingsManager.i().userSession.depo.getCodMdep()); setModificatoDa(SettingsManager.i().user.fullname); + setDataMove(new Date()); } public String getDataCollo() { @@ -86,6 +88,12 @@ public class MtbCols extends EntityBase { return this; } + public MtbCols setDataMove(Date dataMove) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + this.dataMove = sdf.format(dataMove); + return this; + } + public String getModificatoDa() { return modificatoDa; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index 6e5c66e3..9c9da9de 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.settings; import java.util.List; import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO; +import it.integry.integrywmsnative.core.model.Azienda; import it.integry.integrywmsnative.core.model.MtbDepo; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; @@ -12,6 +13,8 @@ public class DBSettingsModel { private List availableCodMdep = null; private List availablePosizioni = null; + private Azienda datiAzienda = null; + private boolean enableCheckPartitaMagCheckPickingV; private boolean flagMultiClienteOrdV; private String defaultCodAnag; @@ -33,6 +36,15 @@ public class DBSettingsModel { this.availablePosizioni = availablePosizioni; } + public Azienda getDatiAzienda() { + return datiAzienda; + } + + public DBSettingsModel setDatiAzienda(Azienda datiAzienda) { + this.datiAzienda = datiAzienda; + return this; + } + public List getAvailableCodMdep() { return availableCodMdep; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 83df8179..4d65da82 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -68,10 +68,19 @@ public class SettingsManager { public static void reloadDBVariables(Runnable onComplete, RunnableArgs onFailed){ dbSettingsModelIstance = new DBSettingsModel(); - loadAvailableProfiles(() -> - loadAvailableCodMdeps(() -> - loadAvailablePosizioni(() -> - loadGestSetupValues(onComplete, onFailed) ,onFailed), onFailed), onFailed); + loadDatiAzienda(() -> + loadAvailableProfiles(() -> + loadAvailableCodMdeps(() -> + loadAvailablePosizioni(() -> + loadGestSetupValues(onComplete, onFailed) ,onFailed), onFailed), onFailed), onFailed); + } + + private static void loadDatiAzienda(Runnable onComplete, RunnableArgs onFailed) { + SystemRESTConsumer.getAzienda(datiAzienda -> { + SettingsManager.iDB().setDatiAzienda(datiAzienda); + + if(onComplete != null) onComplete.run(); + }, onFailed); } private static void loadAvailableProfiles(Runnable onComplete, RunnableArgs onFailed){ diff --git a/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java b/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java new file mode 100644 index 00000000..4e70739a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/update/UpdatesManager.java @@ -0,0 +1,21 @@ +package it.integry.integrywmsnative.core.update; + +import android.content.Context; + +import com.github.javiersantos.appupdater.AppUpdater; +import com.github.javiersantos.appupdater.enums.Display; +import com.github.javiersantos.appupdater.enums.UpdateFrom; + +import it.integry.integrywmsnative.core.settings.SettingsManager; + +public class UpdatesManager { + + public static void init(Context context) { + AppUpdater appUpdater = new AppUpdater(context) + .setDisplay(Display.DIALOG) + .setUpdateFrom(UpdateFrom.JSON) + .setUpdateJSON("http://" + SettingsManager.i().server.host + ":" + SettingsManager.i().server.port + "/ems-api/wms/currentVersion"); + appUpdater.start(); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java index bd6258d1..aff2a9d9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java @@ -13,6 +13,10 @@ public class UtilityBarcode { return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.CODE128 && barcodeScanDTO.getStringValue().startsWith("U"); } + public static boolean isEtichetta128(BarcodeScanDTO barcodeScanDTO){ + return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128); + } + public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) { String barcode = barcodeScanDTO.getStringValue(); boolean isPosizione = false; @@ -36,9 +40,9 @@ public class UtilityBarcode { - public static Integer getNumColloFromULAnonima(BarcodeScanDTO barcodeScanDTO) { - if(barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.CODE128){ - return Integer.parseInt(barcodeScanDTO.getStringValue().substring(3)); + public static Integer getNumColloFromULAnonima(String barcode) { + if(barcode != null){ + return Integer.parseInt(barcode.substring(3)); } else return null; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java new file mode 100644 index 00000000..a7ba71c9 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java @@ -0,0 +1,24 @@ +package it.integry.integrywmsnative.core.utility; + +import it.integry.integrywmsnative.core.model.MtbDepoPosizione; + +public class UtilityPosizione { + + public static boolean isPosizioneWithLivello(MtbDepoPosizione mtbDepoPosizione) { + + //TODO: Review this check + + + if(mtbDepoPosizione != null) { + + char LChar = mtbDepoPosizione.getPosizione().charAt(mtbDepoPosizione.getPosizione().length()-2); + + if(LChar == 'L') { + return true; + } else return false; + } + + return false; + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java index 49b67cd1..7b138bfb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java @@ -203,7 +203,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl if(UtilityBarcode.isEtichettaAnonima(data) && !thereIsAnOpenedUL()){ this.executeEtichettaAnonima(data, progressDialog); - } else if(data.getType() == BarcodeType.EAN128) { + } else if(UtilityBarcode.isEtichetta128(data)) { this.executeEtichettaEan128(data, progressDialog); } else if(UtilityBarcode.isEanPeso(data)){ this.executeEtichettaEanPeso(data, progressDialog); @@ -218,7 +218,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), false, false, mtbColt -> { if(mtbColt == null) { - this.createNewUL(UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, null); + this.createNewUL(UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, null); BarcodeManager.enable(); } else { progressDialog.dismiss(); @@ -444,7 +444,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl .setDisablePrint(disablePrint) .setMtbColr(new ObservableArrayList<>()); - + value.setMtbCols(null); setULToCurrentContext(value); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java index 315d960a..c5d58de9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; @@ -74,7 +75,19 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked { mContext.getText(R.string.loading) + " ...", true); try { - String sql = "SELECT *, mtb_aart.descrizione, mtb_aart.unt_mis " + + ColliMagazzinoRESTConsumer.getByTestata(item, true, false, mtbColt -> { + + ObservableArrayList mtbColrObservableArrayList = new ObservableArrayList<>(); + mtbColrObservableArrayList.addAll(mtbColt.getMtbColr()); + item.setMtbColr(mtbColrObservableArrayList); + + progress.dismiss(); + + mContext.startContenutoBancaleActivity(item); + + }, ex -> UtilityExceptions.defaultException(mContext, ex, progress)); + + /*String sql = "SELECT *, mtb_aart.descrizione, mtb_aart.unt_mis " + "FROM mtb_colr " + "LEFT OUTER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart " + "WHERE " + @@ -103,7 +116,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked { UtilityExceptions.defaultException(mContext, ex, progress); } }); - + */ } catch (Exception e) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java index 16c13898..86681ef1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java @@ -31,6 +31,7 @@ public class MainFragment extends Fragment implements ITitledFragment { @BindView(R.id.no_connection_top_layout) ExpandableLayout mNoConnectionLayout; @BindView(R.id.current_user_name) TextView currentUsername; + //@BindView(R.id.drawer_username) TextView drawerUsername; private View mView; @@ -81,6 +82,7 @@ public class MainFragment extends Fragment implements ITitledFragment { currentUsername.setText(SettingsManager.i().user.fullname); + //drawerUsername.setText(SettingsManager.i().user.fullname); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java index e41508b0..466cc490 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java @@ -95,7 +95,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme @Override public void onDetach() { - mRettificaGiacenzeViewModel.closeLU(false); + mRettificaGiacenzeViewModel.closeLU(false, false); BarcodeManager.removeCallback(barcodeScannerIstanceID); super.onDetach(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java index a530426b..59cade51 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/RettificaGiacenzeHelper.java @@ -32,7 +32,7 @@ public class RettificaGiacenzeHelper { public void loadListaFornitori(RunnableArgs> onComplete) { final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mContext); - progress.show(); + //progress.show(); String sql = "SELECT cod_alis as 'codAlis', descrizione FROM atb_list WHERE flag_attivo = 'S'"; @@ -53,11 +53,15 @@ public class RettificaGiacenzeHelper { } public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onFailed) { - String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart " + - " WHERE cod_alis = " + UtilityDB.valueToString(codAlis) + + + String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " + + " WHERE mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) + " AND mtb_lisa.cod_mart = mtb_aart.cod_mart " + - " AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr +"%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " + - " ORDER BY mtb_aart.descrizione_estesa"; + " AND mtb_lisa.cod_mart = mtb_part.cod_mart " + + " AND mtb_part.cod_mdep = '01' " + + " AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr + "%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " + + " ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa"; + Type typeOfObjectsList = new TypeToken>() {}.getType(); SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index a57ceffe..7029c785 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -26,6 +26,7 @@ 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.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.di.BindableBoolean; @@ -36,6 +37,7 @@ import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbCols; import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; @@ -49,6 +51,7 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.Rettific import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; import it.integry.integrywmsnative.ui.StatusBarAlert; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; +import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; @@ -216,7 +219,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked private void searchArtFor(String codAlis, String queryText) { final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); - progressDialog.show(); + //progressDialog.show(); mHelper.searchArtForn(codAlis, queryText, listaArts -> { progressDialog.dismiss(); @@ -229,7 +232,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked private void searchArtInt(String queryText) { final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); - progressDialog.show(); + //progressDialog.show(); mHelper.searchArtInt(queryText, listaArts -> { progressDialog.dismiss(); @@ -409,36 +412,40 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked mtbColt.get().getMtbColr().size() > 0; } - public void closeLU(boolean openNewOne) { + public void closeLU(boolean openNewOne, boolean saveCausale) { - if(thereIsAnyRowInUL()) { + if(thereIsAnOpenedUL()) { final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting), mContext.getText(R.string.loading) + " ...", true); if (thereIsAnyRowInUL()) { - if (!UtilityString.isNullOrEmpty(SettingsManager.iDB().getDefaultCausaleRettificaGiacenze())) { + if (!UtilityString.isNullOrEmpty(SettingsManager.iDB().getDefaultCausaleRettificaGiacenze()) && saveCausale) { + posizionaCollo(() -> + saveCausaleRettificaGiacenze(progress, () -> { + if (!mtbColt.get().getDisablePrint()) { + printCollo(progress); + } else { + progress.dismiss(); + resetMtbColt(openNewOne); + } + }) + , ex -> + UtilityExceptions.defaultException(mContext, ex, progress) + ); - progress.show(); - saveCausaleRettificaGiacenze(progress, () -> { + } else { + posizionaCollo(() -> { if (!mtbColt.get().getDisablePrint()) { printCollo(progress); } else { - progress.dismiss(); resetMtbColt(openNewOne); } - }); - } else { - if (!mtbColt.get().getDisablePrint()) { - progress.show(); - printCollo(progress); - } else { - resetMtbColt(openNewOne); - } + }, ex -> UtilityExceptions.defaultException(mContext, ex, progress)); } } else { - progress.show(); + ColliMagazzinoRESTConsumer.deleteCollo(mtbColt.get(), () -> { progress.dismiss(); resetMtbColt(openNewOne); @@ -473,8 +480,17 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked }); } + private void posizionaCollo(Runnable onComplete, RunnableArgs onFailed) { + /*DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), () -> { - public void printCollo(ProgressDialog progress) { + }, ex -> { + + }).show();*/ + onComplete.run(); + } + + + private void printCollo(ProgressDialog progress) { this.showAskPrint(shouldPrint -> { @@ -535,6 +551,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked } }); } else { + progress.dismiss(); resetMtbColt(true); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index 265847d5..a6eeb72e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -23,6 +23,8 @@ import butterknife.ButterKnife; import butterknife.OnClick; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.CommonRESTException; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; @@ -40,8 +42,10 @@ import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanz import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO; +import it.integry.integrywmsnative.gest.vendita.viewmodel.VenditaViewModel; import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; +import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.waterfalltoolbar.WaterfallToolbar; public class MainVenditaFragment extends Fragment implements ITitledFragment, IRecyclerFragment, ISelectAllFragment, IFilterableFragment { @@ -50,6 +54,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR private VenditaHelper mHelper; private FragmentMainVenditaBinding mBinding = null; + private VenditaViewModel mViewModel; private MainListVenditaAdapter mAdapter; @@ -58,6 +63,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR private DialogVenditaFiltroAvanzatoViewModel mAppliedFilterViewModel; + private int barcodeScannerIstanceID = -1; + + + public MainVenditaFragment() { } @@ -83,6 +92,13 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR init(); } + + @Override + public void onDestroy() { + BarcodeManager.removeCallback(barcodeScannerIstanceID); + super.onDestroy(); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -95,29 +111,26 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR ButterKnife.bind(this, mBinding.getRoot()); - initActionBar(); - mWaterfallToolbar.setRecyclerView(mBinding.venditaMainList); return mBinding.getRoot(); } - private void initActionBar() { -// ((AppCompatActivity)getActivity()).getSupportActionBar(). - } - private void init(){ final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting), getText(R.string.loading) + " ...", true); mHelper = new VenditaHelper(getActivity()); + mViewModel = new VenditaViewModel(getActivity(), this, mBinding, mHelper); mHelper.loadOrdini(new VenditaHelper.ILoadOrdiniCallback() { @Override public void onLoadSuccess(List ordini) { - Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show(); + UtilityToast.showToast("Caricati " + ordini.size() + " ordini"); mOriginalOrderList = ordini; + mViewModel.setListOrder(ordini); + groupOrdini(ordini); initRecyclerView(); progress.dismiss(); @@ -133,10 +146,14 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show(); } }); + + barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() + .setOnScanSuccessfull(mViewModel.onScanSuccessfull) + .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); } - private void groupOrdini(List ordini){ + public void groupOrdini(List ordini){ groupedOrdiniInevasi = new ArrayList<>(); @@ -220,7 +237,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR mBinding.venditaMainList.setAdapter(mAdapter); } - private void refreshRecyclerView() { + public void refreshRecyclerView() { mAdapter.updateItems(groupedOrdiniInevasi); } @@ -242,6 +259,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR else mBinding.venditaMainFab.hide(); }; + @OnClick(R.id.vendita_main_fab) public void onClick(View view) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java index 61f1b981..2e80691a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java @@ -17,7 +17,10 @@ import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.REST.model.EsitoType; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.DtbOrdt; +import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityLogger; @@ -52,7 +55,7 @@ public class VenditaHelper { callback.onLoadSuccess(response.body().getDto()); } else { Log.e("Vendita", response.body().getErrorMessage()); - callback.onLoadFail(new Exception(response.message())); + callback.onLoadFail(new Exception(response.body().getErrorMessage())); } } else { Log.e("Vendita", response.message()); @@ -164,9 +167,53 @@ public class VenditaHelper { } + public void getOrdiniInCommessaCollo(MtbColt testataCollo, RunnableArgs> onComplete, RunnableArgs onFailed) { + OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); + service.getOrdiniInCommessaCollo( + testataCollo.getDataColloS(), + testataCollo.getNumCollo(), + testataCollo.getSerCollo(), + testataCollo.getGestione(), + GestioneEnum.VENDITA.getText(), + SettingsManager.i().userSession.depo.getCodMdep()) + .enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + + if(response.isSuccessful()) { + + if(response.body() != null) { + if(response.body().getEsito() == EsitoType.OK) { + onComplete.run(response.body().getDto()); + } else { + Log.e("getOrdiniInCommCollo", response.body().getErrorMessage()); + onFailed.run(new Exception(response.body().getErrorMessage())); + } + } else { + Log.e("getOrdiniInCommCollo", response.message()); + onFailed.run(new Exception(response.message())); + } + } else { + Log.e("getOrdiniInCommCollo", "Status " + response.code() + ": " + response.message()); + onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); + } + + } + + @Override + public void onFailure(Call>> call, Throwable t) { + Log.e("getOrdiniInCommCollo", t.toString()); + UtilityLogger.errorMe(new Exception(t)); + onFailed.run(new Exception(t)); + } + }); + + } + + public List getSelectedOrders(List groupedOrdiniInevasi){ diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java index 7e17df9e..1ef63220 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dialogs/DialogVenditaFiltroAvanzato.java @@ -50,7 +50,10 @@ public class DialogVenditaFiltroAvanzato { return new DialogVenditaFiltroAvanzato(context, ordersList, null, onDismiss).currentAlert; } - public static AlertDialog make(final Context context, final List ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss, DialogVenditaFiltroAvanzatoViewModel> onDismiss) { + public static AlertDialog make(final Context context, + final List ordersList, + DialogVenditaFiltroAvanzatoViewModel baseViewModel, + RunnableArgss, DialogVenditaFiltroAvanzatoViewModel> onDismiss) { return new DialogVenditaFiltroAvanzato(context, ordersList, baseViewModel, onDismiss).currentAlert; } @@ -270,7 +273,7 @@ public class DialogVenditaFiltroAvanzato { currentFilteredOrderList = tmpStream.toList(); } - return Stream.of(currentFilteredOrderList).map(x -> x.getTermCons()).distinct().withoutNulls().toList(); + return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getTermCons).distinct().withoutNulls().toList(); } private List getAvailableAutomezzi() { @@ -288,7 +291,7 @@ public class DialogVenditaFiltroAvanzato { currentFilteredOrderList = tmpStream.toList(); } - return Stream.of(currentFilteredOrderList).map(x -> x.getCodAuto()).distinct().withoutNulls().toList(); + return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getCodAuto).distinct().withoutNulls().toList(); } private void refreshList() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java index 91137e7f..d96a7a80 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.vendita.rest; import java.util.List; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO; import retrofit2.Call; @@ -17,4 +18,7 @@ public interface OrdiniVenditaRESTConsumerService { @GET("getPickingListFromOrdini") Call>> getPickingList(@Query("codMdep") String codMdep, @Query("dataCons") String dataCons, @Query("chiaviOrdini") String codBarreBacale); + @GET("getOrdiniInCommCollo") + Call>> getOrdiniInCommessaCollo(@Query("dataCollo") String dataCollo, @Query("numCollo") Integer numCollo, @Query("serCollo") String serCollo, @Query("gestioneCollo") String gestioneCollo, @Query("gestioneOrdine") String gestioneOrdine, @Query("codMdep") String codMdep); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java new file mode 100644 index 00000000..83acbe46 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java @@ -0,0 +1,189 @@ +package it.integry.integrywmsnative.gest.vendita.viewmodel; + +import android.app.Activity; +import android.app.ProgressDialog; +import android.text.Html; +import android.text.SpannableString; + +import com.annimon.stream.Collectors; +import com.annimon.stream.Stream; + +import java.util.ArrayList; +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; +import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.DtbOrdt; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.utility.UtilityBarcode; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityLogger; +import it.integry.integrywmsnative.core.utility.UtilityPosizione; +import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.core.utility.UtilityToast; +import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding; +import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment; +import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper; +import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzatoViewModel; +import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; +import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO; +import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; +import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; + +public class VenditaViewModel { + + private Activity mContext; + private MainVenditaFragment mFragment; + private FragmentMainVenditaBinding mBinding; + private VenditaHelper mHelper; + + private List mOrdini = new ArrayList<>(); + + public VenditaViewModel(Activity context, MainVenditaFragment fragment, FragmentMainVenditaBinding binding, VenditaHelper helper) { + mContext = context; + mFragment = fragment; + mBinding = binding; + mHelper = helper; + } + + public void setListOrder(List ordini) { + mOrdini = ordini; + } + + + public RunnableArgs onScanSuccessfull = data -> { + + BarcodeManager.disable(); + final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + if(UtilityBarcode.isEtichetta128(data)){ + this.executeEtichettaEan128(data, progressDialog); + } else { + progressDialog.dismiss(); + BarcodeManager.enable(); + } + + }; + + + + private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) { + BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { + + String barcodeProd = null; + + if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc; + if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin; + if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content; + + + if(!UtilityString.isNullOrEmpty(barcodeProd)) { + + if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){ + this.executeEtichettaLU(ean128Model.Sscc, progressDialog); + } else { + showNoULFound(); + progressDialog.dismiss(); + BarcodeManager.enable(); + + } + + + } else { + //EAN 128 non completo o comunque mancano i riferimenti al prodotto + showNoULFound(); + progressDialog.dismiss(); + BarcodeManager.enable(); + } + }, ex-> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + } + + + private void executeEtichettaLU(String SSCC, ProgressDialog progressDialog) { + ColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> { + + if(mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) { + + if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO) { + //GET BY COMMESSA COLLO + mHelper.getOrdiniInCommessaCollo(mtbColt, orderList -> { + + if(orderList != null && orderList.size() > 0) { + UtilityToast.showToast("Caricati " + orderList.size() + " ordini"); + + List numOrds = Stream.of(orderList) + .map(DtbOrdt::getNumOrd) + .toList(); + + List filteredOrders = Stream.of(mOrdini) + .filter(x -> numOrds.contains(x.getNumOrd())).toList(); + + mFragment.groupOrdini(filteredOrders); + mFragment.refreshRecyclerView(); + } else { + showNoOrderFound(); + } + + progressDialog.dismiss(); + BarcodeManager.enable(); + + + + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + + progressDialog.dismiss(); + BarcodeManager.enable(); + + } else { + progressDialog.dismiss(); + BarcodeManager.enable(); + showWrongGestioneUL(); + } + + } else { + progressDialog.dismiss(); + BarcodeManager.enable(); + showNoULFound(); + } + + + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + } + + + + private void showNoOrderFound() { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(mContext.getResources().getText(R.string.no_orders_found_message)), + null, null).show(); + } + + + private void showNoULFound() { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(mContext.getResources().getText(R.string.no_lu_found_message)), + null, null).show(); + } + + + private void showWrongGestioneUL() { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())), + null, null).show(); + } + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 42711ad1..4698b6b4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -274,7 +274,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO //invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul //dell'etichetta anonima this.executeEtichettaAnonimaNotOpenedLU(data, progressDialog); - } else if(data.getType() == BarcodeType.EAN128) { + } else if(UtilityBarcode.isEtichetta128(data)) { //Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) this.createNewUL(null, null, progressDialog, false, false, () -> { @@ -289,7 +289,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO if(UtilityBarcode.isEtichettaAnonima(data)){ //Cerco gli articoli presenti nell'ul dell'etichetta anonima this.executeEtichettaLU(data.getStringValue(), progressDialog); - } else if(data.getType() == BarcodeType.EAN128) { + } else if(UtilityBarcode.isEtichetta128(data)) { //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) this.executeEtichettaEan128(data, progressDialog); @@ -305,7 +305,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO if(mtbColt == null) { this.createNewUL( - UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO), + UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, true, null); @@ -556,7 +556,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO - applyFilter("COD: "); + applyFilter(""); refreshOrderBy(false); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java index 6dd39d76..c9efd572 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java @@ -46,13 +46,17 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment //mParam1 = getArguments().getString(ARG_PARAM1); //mParam2 = getArguments().getString(ARG_PARAM2); } + + mVersamentoMerceViewModel = new VersamentoMerceViewModel(); + barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() + .setOnScanSuccessfull(mVersamentoMerceViewModel.onScanSuccessfull) + .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_versamento_merce, container, false); - mVersamentoMerceViewModel = new VersamentoMerceViewModel(); mBinding.setView(this); mBinding.setViewmodel(mVersamentoMerceViewModel); @@ -65,42 +69,17 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment mHelper = new VersamentoMerceHelper(getActivity()); mVersamentoMerceViewModel.init(getActivity(), mBinding, mHelper); - barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() - .setOnScanSuccessfull(mVersamentoMerceViewModel.onScanSuccessfull) - .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); - /* - mHelper.loadListaFornitori(listaFornitori -> { - mRettificaGiacenzeViewModel.setupSearchFornitori(listaFornitori); - }); - - - mBinding.autoCompleteFornitori.setOnFocusChangeListener((v, hasFocus) -> { - setUIToForn(); - }); - mBinding.inputCodArtDescrForn.setOnFocusChangeListener((v, hasFocus) -> { - setUIToForn(); - }); - - mBinding.inputCodArtDescrInt.setOnFocusChangeListener((v, hasFocus) -> { - setUIToIntArt(); - }); - - */ mVersamentoMerceViewModel.openLU(); } @Override - public void onAttach(Context context) { - super.onAttach(context); - } - - @Override - public void onDetach() { - super.onDetach(); + public void onDestroy() { + BarcodeManager.removeCallback(barcodeScannerIstanceID); + super.onDestroy(); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java index cc2c900f..7c346f9b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java @@ -3,7 +3,9 @@ package it.integry.integrywmsnative.gest.versamento_merce.viewmodel; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; +import android.databinding.ObservableArrayList; import android.databinding.ObservableField; +import android.text.Html; import android.text.SpannableString; import com.annimon.stream.Stream; @@ -27,15 +29,18 @@ import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityLogger; +import it.integry.integrywmsnative.core.utility.UtilityPosizione; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding; import it.integry.integrywmsnative.gest.versamento_merce.core.VersamentoMerceHelper; +import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; @@ -63,8 +68,12 @@ public class VersamentoMerceViewModel { DialogScanOrCreateLU.make(mContext, true, mtbColt -> { if(mtbColt == null) { ((MainActivity)mContext).popToMain(); - } else { + } else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){ setMtbColt(mtbColt); + } else { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml("Sono accettate solamente UL di Acquisto o Lavorazione di CARICO")), + null, this::openLU).show(); } }).show(); } @@ -75,6 +84,7 @@ public class VersamentoMerceViewModel { public void resetMtbColt() { this.mtbColt.set(null); + openLU(); } public RunnableArgs onScanSuccessfull = data -> { @@ -88,7 +98,9 @@ public class VersamentoMerceViewModel { this.executeEtichettaPosizione(data, progressDialog); } else if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){ //searchArtInt(data.getStringValue()); - } else if(data.getType() == BarcodeType.EAN128) { + } else if(UtilityBarcode.isEtichettaAnonima(data)) { + this.executeEtichettaLU(data.getStringValue(), true, progressDialog); + }else if(UtilityBarcode.isEtichetta128(data)) { this.executeEtichettaEan128(data, progressDialog); } else { BarcodeManager.enable(); @@ -127,17 +139,7 @@ public class VersamentoMerceViewModel { BarcodeManager.enable(); }); } else { - - ColliMagazzinoRESTConsumer.changePosizione(mtbColt.get(), foundPosizione, () -> { - progressDialog.dismiss(); - BarcodeManager.enable(); - - resetMtbColt(); - }, ex -> { - UtilityExceptions.defaultException(mContext, ex, progressDialog); - BarcodeManager.enable(); - }); - + updatePosizione(foundPosizione, UtilityPosizione.isPosizioneWithLivello(foundPosizione), progressDialog); } } @@ -154,7 +156,7 @@ public class VersamentoMerceViewModel { if(!UtilityString.isNullOrEmpty(barcodeProd)) { if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){ - this.executeEtichettaLU(ean128Model.Sscc, progressDialog); + this.executeEtichettaLU(ean128Model.Sscc, false, progressDialog); } else { showNoULFound(); progressDialog.dismiss(); @@ -176,11 +178,33 @@ public class VersamentoMerceViewModel { - private void executeEtichettaLU(String sscc, ProgressDialog progressDialog) { + private void executeEtichettaLU(String sscc, boolean isAnonima, ProgressDialog progressDialog) { ColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColt -> { - //TAKE HERE - pickMerceULtoUL(mtbColt, progressDialog); + if(mtbColt == null && !isAnonima) { + showNoULFound(); + BarcodeManager.enable(); + progressDialog.dismiss(); + } else if(mtbColt != null && (mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA)) { + showWrongGestioneUL(); + BarcodeManager.enable(); + progressDialog.dismiss(); + } else { + if(mtbColt == null && isAnonima) { + ColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(sscc, GestioneEnum.LAVORAZIONE, mtbColtAnonimo -> { + pickMerceULtoUL(mtbColtAnonimo, progressDialog); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + + } else { + pickMerceULtoUL(mtbColt, progressDialog); + } + + + } + }, ex -> { UtilityExceptions.defaultException(mContext, ex, progressDialog); @@ -188,7 +212,38 @@ public class VersamentoMerceViewModel { }); } + private void updatePosizione(MtbDepoPosizione mtbDepoPosizione, boolean shouldAskLivello, ProgressDialog progressDialog) { + if(shouldAskLivello) { + DialogAskLivelloPosizione.make(mContext, livello -> { + + if(livello == null) { + updatePosizione(mtbDepoPosizione, shouldAskLivello, progressDialog); + } else { + String newPosizione = mtbDepoPosizione.getPosizione().substring(0, mtbDepoPosizione.getPosizione().length()-1); + newPosizione += livello; + mtbDepoPosizione.setPosizione(newPosizione); + + updatePosizione(mtbDepoPosizione, false, progressDialog); + } + + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + } else { + ColliMagazzinoRESTConsumer.changePosizione(mtbColt.get(), mtbDepoPosizione, () -> { + progressDialog.dismiss(); + BarcodeManager.enable(); + + resetMtbColt(); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + } + + } private void pickMerceULtoUL(MtbColt destMtbColt, ProgressDialog progressDialog) { @@ -199,14 +254,42 @@ public class VersamentoMerceViewModel { DialogChooseArtsFromListaArts.make(mContext, mtbColrsToPick, pickedAarts -> { progressDialog.dismiss(); - UtilityToast.showToast("Selezionati " + pickedAarts.size() + " articoli"); List destNewMtbColr = new ArrayList<>(); askQuantities(pickedAarts.iterator(), destNewMtbColr, () -> { BarcodeManager.enable(); - UtilityToast.showToast("Create " + destNewMtbColr.size() + " nuove righe"); + if(destNewMtbColr != null && destNewMtbColr.size() > 0){ + MtbColt clonedTestata = (MtbColt) destMtbColt.clone(); + ObservableArrayList mtbColrObservableField = new ObservableArrayList<>(); + + for(int i = 0; i < destNewMtbColr.size(); i++) { + MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone(); + + cloneMtbColr + .setGestioneRif(cloneMtbColr.getGestione()) + .setGestione(null); + + cloneMtbColr + .setSerColloRif(cloneMtbColr.getSerCollo()) + .setSerCollo(null); + + cloneMtbColr + .setNumColloRif(cloneMtbColr.getNumCollo()) + .setNumCollo(null); + + cloneMtbColr + .setDataColloRif(cloneMtbColr.getDataColloS()) + .setDataCollo(null); + + mtbColrObservableField.add(cloneMtbColr); + } + + clonedTestata.setMtbColr(mtbColrObservableField); + + saveLU(clonedTestata); + } }); @@ -222,6 +305,8 @@ public class VersamentoMerceViewModel { if(sourceMtbColrs.hasNext()){ askSingleQuantity(sourceMtbColrs.next(), mtbColr -> { + + destMtbColr.add(mtbColr); askQuantities(sourceMtbColrs, destMtbColr, onComplete); }); @@ -255,4 +340,48 @@ public class VersamentoMerceViewModel { new SpannableString(mContext.getResources().getText(R.string.no_lu_found_message)), null, null).show(); } + + + private void showWrongGestioneUL() { + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_A_V_not_accepted_message).toString())), + null, null).show(); + } + + + + /* private void createNewLU(RunnableArgs onComplete ,RunnableArgs onFailed) { + ColliMagazzinoRESTConsumer.createColloLavorazione(+1, onComplete, onFailed); + } +*/ + + private void saveLU(MtbColt mtbColt) { + mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + for(int i = 0; i < mtbColt.getMtbColr().size(); i++) { + mtbColt.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + } + + + ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> { + resetMtbColt(); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex); + }); + + } + + + private void showDataSavedDialog() { + + DialogSimpleMessageHelper.makeSuccessDialog( + mContext, + mContext.getResources().getString(R.string.completed), + new SpannableString(mContext.getResources().getString(R.string.data_saved)), + null, () -> { + resetMtbColt(); + openLU(); + }).show(); + + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java new file mode 100644 index 00000000..7b8b3c7e --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java @@ -0,0 +1,28 @@ +package it.integry.integrywmsnative.ui; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.MotionEvent; + +public class DeactivatableViewPager extends ViewPager { + + + public DeactivatableViewPager(Context context) { + super(context); + } + + public DeactivatableViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return !isEnabled() || super.onTouchEvent(event); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent event) { + return isEnabled() && super.onInterceptTouchEvent(event); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/WrapContentHeightViewPager.java b/app/src/main/java/it/integry/integrywmsnative/view/WrapContentHeightViewPager.java new file mode 100644 index 00000000..f6d96eb6 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/WrapContentHeightViewPager.java @@ -0,0 +1,70 @@ +package it.integry.integrywmsnative.view; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.View; + +public class WrapContentHeightViewPager extends ViewPager { + + /** + * Constructor + * + * @param context the context + */ + public WrapContentHeightViewPager(Context context) { + super(context); + } + + /** + * Constructor + * + * @param context the context + * @param attrs the attribute set + */ + public WrapContentHeightViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + // find the first child view + View view = getChildAt(0); + if (view != null) { + // measure the first child view with the specified measure spec + view.measure(widthMeasureSpec, heightMeasureSpec); + } + + setMeasuredDimension(getMeasuredWidth(), measureHeight(heightMeasureSpec, view)); + } + + /** + * Determines the height of this view + * + * @param measureSpec A measureSpec packed into an int + * @param view the base view with already measured height + * + * @return The height of the view, honoring constraints from measureSpec + */ + private int measureHeight(int measureSpec, View view) { + int result = 0; + int specMode = MeasureSpec.getMode(measureSpec); + int specSize = MeasureSpec.getSize(measureSpec); + + if (specMode == MeasureSpec.EXACTLY) { + result = specSize; + } else { + // set the height from the base view if available + if (view != null) { + result = view.getMeasuredHeight(); + } + if (specMode == MeasureSpec.AT_MOST) { + result = Math.min(result, specSize); + } + } + return result; + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java new file mode 100644 index 00000000..89f379e7 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java @@ -0,0 +1,48 @@ +package it.integry.integrywmsnative.view.dialogs; + +import android.content.Context; +import android.content.DialogInterface; +import android.support.v7.app.AlertDialog; +import android.text.InputType; +import android.widget.EditText; + +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.core.utility.UtilityToast; + +public class DialogAskLivelloPosizione { + + + public static void make(Context context, RunnableArgs onComplete, RunnableArgs onFailed) { + final EditText livelloEditText = new EditText(context); + livelloEditText.setInputType(InputType.TYPE_CLASS_NUMBER); + + AlertDialog dialog = new AlertDialog.Builder(context) + .setTitle("Livello") + .setMessage("In che livello vuoi posizionare?") + .setView(livelloEditText) + .setPositiveButton("OK", (dialog1, which) -> { + String livello = String.valueOf(livelloEditText.getText()); + if(UtilityString.isNullOrEmpty(livello)) { + UtilityToast.showToast("Inserisci un LIVELLO valido"); + onComplete.run(null); + } else { + try{ + Integer livelloInt = Integer.parseInt(livello); + onComplete.run(livelloInt); + } catch (NumberFormatException nfe) { + UtilityToast.showToast("Inserisci un LIVELLO valido"); + onComplete.run(null); + } + } + + }) + .setNegativeButton("Annulla", null) + .create(); + dialog.show(); + } + + +} + + diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java new file mode 100644 index 00000000..b1cf9db6 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java @@ -0,0 +1,147 @@ +package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu; + +import android.app.Dialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.databinding.DataBindingUtil; +import android.os.Handler; +import android.os.Looper; +import android.support.annotation.LayoutRes; +import android.support.v7.app.AlertDialog; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.Button; +import android.widget.LinearLayout; + +import com.annimon.stream.Stream; + +import java.util.ArrayList; +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBarcode; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityPosizione; +import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.databinding.DialogAskPositionOfLuBinding; +import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; + +public class DialogAskPositionOfLU { + + + private Context mContext; + private DialogAskPositionOfLuBinding mBinding; + private MtbColt mtbColt; + + private Dialog mDialog; + + private Runnable onComplete; + private RunnableArgs onFailed; + + public static Dialog makeBase(final Context context, MtbColt mtbColtToUpdate, Runnable onComplete, RunnableArgs onFailed) { + return new DialogAskPositionOfLU(context, mtbColtToUpdate, onComplete, onFailed).mDialog; + } + + public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, Runnable onComplete, RunnableArgs onFailed) { + mContext = context; + mtbColt = mtbColtToUpdate; + + this.onComplete = onComplete; + this.onFailed = onFailed; + + LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_position_of_lu, null, false); + mBinding.setMContext(mContext); + + List views = new ArrayList<>(); + views.add(R.layout.dialog_ask_position_of_lu__page1); + views.add(R.layout.dialog_ask_position_of_lu__page2); + + DialogAskPositionOfLUAdapter myadapter = new DialogAskPositionOfLUAdapter(mContext, views); + mBinding.viewpager.setAdapter(myadapter); + mBinding.viewpager.beginFakeDrag(); + + + + mDialog = new Dialog(mContext); + mDialog.setContentView(mBinding.getRoot()); + mDialog.setCanceledOnTouchOutside(false); + + setupBarcode(); + } + + + private void askLivello() { + mBinding.viewpager.setCurrentItem(1, true); + } + + private boolean isOnLivelloPage() { + return mBinding.viewpager.getCurrentItem() == 1; + } + + private void setupBarcode() { + + int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() + .setOnScanSuccessfull(onScanSuccessfull) + .setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false))); + + mDialog.setOnDismissListener(dialog -> { + BarcodeManager.removeCallback(barcodeIstanceID); + }); + + } + + + private RunnableArgs onScanSuccessfull = data -> { + + BarcodeManager.disable(); + + if(!isOnLivelloPage()) { + + if (UtilityBarcode.isEtichettaPosizione(data)) { + + MtbDepoPosizione foundPosizione = Stream.of(SettingsManager.iDB().getAvailablePosizioni()) + .filter(x -> x.getPosizione().equalsIgnoreCase(data.getStringValue())) + .single(); + + + if (UtilityPosizione.isPosizioneWithLivello(foundPosizione)) { + askLivello(); + } else { + updatePosizione(foundPosizione, () -> { + if(onComplete != null) onComplete.run(); + }, onFailed); + } + + } + } else { + BarcodeManager.enable(); + } + }; + + + private void updatePosizione(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete, RunnableArgs onFailed) { + + final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.changePosizione(mtbColt, mtbDepoPosizione, () -> { + progressDialog.dismiss(); + onComplete.run(); + }, ex -> { + progressDialog.dismiss(); + onFailed.run(ex); + }); + + } + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java new file mode 100644 index 00000000..42c5c7f0 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java @@ -0,0 +1,50 @@ +package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v4.view.PagerAdapter; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; + + +import java.util.List; + +public class DialogAskPositionOfLUAdapter extends PagerAdapter { + private Context mContext; + + private List mDatasetLayout; + + public DialogAskPositionOfLUAdapter(Context context, List datasetView) { + this.mContext = context; + this.mDatasetLayout = datasetView; + } + + @Override + public int getCount() { + return mDatasetLayout.size(); + } + + @Override + public View instantiateItem(ViewGroup container, int position) { + LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE); + View view = inflater.inflate(mDatasetLayout.get(position), container, false); + + container.addView(view); + + return view; + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + container.removeView((LinearLayout)object); + } + + @Override + public boolean isViewFromObject(@NonNull View view, @NonNull Object o) { + return view == o; + } + + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java index 31114730..0565f750 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java @@ -392,7 +392,7 @@ public class DialogInputQuantity { BarcodeManager.enable(); } - } else if(data.getType() == BarcodeType.EAN128){ + } else if(UtilityBarcode.isEtichetta128(data)){ final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(currentContext); BarcodeRESTConsumer.decodeEan128(data, ean128Model -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java index 6c5c6d80..65a9012a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java @@ -22,6 +22,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityExceptions; @@ -83,9 +84,8 @@ public class DialogScanOrCreateLU { mBinding.createNewLuButton.setOnClickListener(v -> { final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(currentContext); - progressDialog.show(); - ColliMagazzinoRESTConsumer.createColloLavorazione(createdMtbColt -> { + ColliMagazzinoRESTConsumer.createColloLavorazione(+1, createdMtbColt -> { sendMtbColt(createdMtbColt, progressDialog); }, ex -> { UtilityExceptions.defaultException(currentContext, ex, progressDialog); @@ -114,13 +114,12 @@ public class DialogScanOrCreateLU { BarcodeManager.disable(); final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(currentContext); - progressDialog.show(); if(UtilityBarcode.isEtichettaPosizione(data)){ this.executeEtichettaPosizione(data, progressDialog); } else if(UtilityBarcode.isEtichettaAnonima(data)) { this.executeEtichettaAnonima(data, progressDialog); - } else if(data.getType() == BarcodeType.EAN128) { + } else if(UtilityBarcode.isEtichetta128(data)) { this.executeEAN128(data, progressDialog); } else { progressDialog.dismiss(); @@ -171,7 +170,7 @@ public class DialogScanOrCreateLU { if(mtbColt == null) { - ColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(barcodeScanDTO, "L", createdMtbColt -> { + ColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(barcodeScanDTO, GestioneEnum.LAVORAZIONE, createdMtbColt -> { BarcodeManager.enable(); createdMtbColt.setDisablePrint(true); sendMtbColt(createdMtbColt, progressDialog); diff --git a/app/src/main/res/drawable/ic_clear_24dp.xml b/app/src/main/res/drawable/ic_clear_24dp.xml new file mode 100644 index 00000000..594883a8 --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_clear_black_24dp.xml b/app/src/main/res/drawable/ic_clear_black_24dp.xml new file mode 100644 index 00000000..ede4b710 --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_clear_white_24dp.xml b/app/src/main/res/drawable/ic_clear_white_24dp.xml new file mode 100644 index 00000000..1e2d044b --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_save_24dp.xml b/app/src/main/res/drawable/ic_save_24dp.xml new file mode 100644 index 00000000..92ff10cb --- /dev/null +++ b/app/src/main/res/drawable/ic_save_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_save_black_24dp.xml b/app/src/main/res/drawable/ic_save_black_24dp.xml new file mode 100644 index 00000000..a561d632 --- /dev/null +++ b/app/src/main/res/drawable/ic_save_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_save_white_24dp.xml b/app/src/main/res/drawable/ic_save_white_24dp.xml new file mode 100644 index 00000000..7242923e --- /dev/null +++ b/app/src/main/res/drawable/ic_save_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a61d8a63..1597f3e7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,25 +1,29 @@ - - - + - - + tools:openDrawer="start"> - + + + + + + + diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index 0668384f..71e83c92 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -1,61 +1,63 @@ - - - - - + + android:layout_height="match_parent" + android:orientation="vertical" + tools:context="it.integry.integrywmsnative.MainActivity"> - + android:layout_height="wrap_content"> - + - + - + - + + + - + - + - + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu.xml b/app/src/main/res/layout/dialog_ask_position_of_lu.xml new file mode 100644 index 00000000..a114866d --- /dev/null +++ b/app/src/main/res/layout/dialog_ask_position_of_lu.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml new file mode 100644 index 00000000..c45228ea --- /dev/null +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml new file mode 100644 index 00000000..0ce7f04d --- /dev/null +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml b/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml index c84c51e4..1470f1ce 100644 --- a/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml +++ b/app/src/main/res/layout/fragment_main_rettifica_giacenze.xml @@ -278,7 +278,7 @@ android:layout_alignParentBottom="true" android:tint="@android:color/white" app:srcCompat="@drawable/ic_check_black_24dp" - android:onClick="@{() -> viewmodel.closeLU(true)}" + android:onClick="@{() -> viewmodel.closeLU(true, true)}" android:visibility="@{viewmodel.isFabVisible.get() ? View.VISIBLE : View.GONE}" /> diff --git a/app/src/main/res/layout/fragment_main_versamento_merce.xml b/app/src/main/res/layout/fragment_main_versamento_merce.xml index 99354d08..1cda37a0 100644 --- a/app/src/main/res/layout/fragment_main_versamento_merce.xml +++ b/app/src/main/res/layout/fragment_main_versamento_merce.xml @@ -24,116 +24,154 @@ + android:orientation="vertical"> + android:background="@drawable/gray_detail_background_round8" + android:orientation="vertical" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp" + android:padding="16dp"> - + android:orientation="horizontal"> - + + + + + + android:orientation="horizontal"> + + + + + + + + + + + + + + + + + + + + + + + + + android:orientation="vertical" + android:layout_marginTop="32dp" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp"> - + android:orientation="horizontal" + android:weightSum="10"> + + + + + + - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml index 2d991294..a4302647 100644 --- a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml +++ b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml @@ -27,14 +27,32 @@ app:layout_constraintStart_toStartOf="parent"> - + android:orientation="horizontal"> + + + + + + @@ -80,7 +98,7 @@ android:paddingTop="2dp" android:paddingRight="6dp" android:paddingBottom="2dp" - android:text="@{UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getUntMis()) ? `\n` + mtbColr.getUntMis() : ``)}" + android:text="@{UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (mtbColr.mtbAart != null && !UtilityString.isNullOrEmpty(mtbColr.mtbAart.untMis) ? `\n` + mtbColr.mtbAart.untMis : ``)}" android:textSize="16sp" android:textColor="@android:color/white" android:textStyle="bold" diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index d2572035..b456d9ea 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -1,37 +1,39 @@ - - - - - + + xmlns:tools="http://schemas.android.com/tools" + android:background="@drawable/side_nav_bar" + android:gravity="bottom" + android:orientation="vertical" + android:paddingBottom="@dimen/activity_vertical_margin" + android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingTop="@dimen/activity_vertical_margin" + android:theme="@style/ThemeOverlay.AppCompat.Dark"> - + - + + + + + + diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 80171f0e..2e1c24ee 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -19,7 +19,7 @@ android:icon="@drawable/ic_menu_manage" android:title="Versamento Merce" /> - + + + android:title="Impostazioni" /> Nessun articolo trovato Nessuna UL trovata + Non sono stati trovati ordini + Acquisto o Vendita non sono ammesse qui]]> + Vendita non sono ammesse qui]]> E\' stata trovata più di una UL + Scansiona il codice a barre di una Posizione + + Livello \ No newline at end of file diff --git a/app/src/main/res/values/buttons_style.xml b/app/src/main/res/values/buttons_style.xml new file mode 100644 index 00000000..fd8ab363 --- /dev/null +++ b/app/src/main/res/values/buttons_style.xml @@ -0,0 +1,24 @@ + + +ì + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 854c17e9..ac2e1dac 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,6 @@ - @color/indigo_500 + #1A73E7 @color/indigo_700 #387ef5 #3f3f51b5 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 63a4fb52..143a0bc9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -102,6 +102,7 @@ Available Batch lot + Level %s]]> Expire date Pcks num @@ -160,7 +161,11 @@ No items found No LU found + No orders found + The LU of type Purchase or Sale is not accepted here + The LU of type Sale is not accepted here Multiple LU found Do you want print the label? + Please scan a Position barcode diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5319864b..2806e537 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,9 +1,7 @@ - - + + + + \ No newline at end of file diff --git a/app/src/main/res/values/textview_style.xml b/app/src/main/res/values/textview_style.xml new file mode 100644 index 00000000..1701d556 --- /dev/null +++ b/app/src/main/res/values/textview_style.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index bd1e2300..703e4837 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ buildscript { ext{ - kotlin_version = '1.3.0' + kotlin_version = '1.3.10' gradle_version = '3.2.1' } diff --git a/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java b/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java index 4630f47d..1158ea33 100644 --- a/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java +++ b/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java @@ -76,19 +76,20 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface { //try { if(mDecodeResult.symName.equalsIgnoreCase("READ_FAIL")){ - //throw new Exception("Barcode non riconosciuto"); - if(mOnScanFailed != null) mOnScanFailed.run(new Exception("Barcode non riconosciuto")); + //if(mOnScanFailed != null) mOnScanFailed.run(new Exception("Barcode non riconosciuto")); return; } - BarcodeScanDTO barcodeScanDTO = new BarcodeScanDTO() - .setByteValue(mDecodeResult.decodeValue) - .setStringValue(mDecodeResult.toString().replaceAll("\n", "").replaceAll("\r", "").trim()) - .setType(BarcodeType.fromInt(mDecodeResult.symType)) - .setName(mDecodeResult.symName) - .setDecodingTime(mDecodeResult.decodeTimeMillisecond); + if(mDecodeResult != null) { + BarcodeScanDTO barcodeScanDTO = new BarcodeScanDTO() + .setByteValue(mDecodeResult.decodeValue) + .setStringValue(mDecodeResult.toString().replaceAll("\n", "").replaceAll("\r", "").trim()) + .setType(BarcodeType.fromInt(mDecodeResult.symType)) + .setName(mDecodeResult.symName) + .setDecodingTime(mDecodeResult.decodeTimeMillisecond); - mOnScanSuccessfull.run(barcodeScanDTO); + mOnScanSuccessfull.run(barcodeScanDTO); + } //} catch (Exception ex) { // Log.e(TAG, ex.getMessage());