Finish v1_9_2(96)
This commit is contained in:
commit
3a9b190c96
2
.idea/runConfigurations/app_saporiveri_pv.xml
generated
2
.idea/runConfigurations/app_saporiveri_pv.xml
generated
@ -1,5 +1,5 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="app_saporiveri_pv" type="AndroidRunConfigurationType" factoryName="Android App">
|
||||
<configuration default="false" name="app_saporiveri_pv" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
|
||||
<module name="app" />
|
||||
<option name="DEPLOY" value="true" />
|
||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||
|
||||
@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
|
||||
|
||||
android {
|
||||
|
||||
def appVersionCode = 95
|
||||
def appVersionName = '1.9.1'
|
||||
def appVersionCode = 96
|
||||
def appVersionName = '1.9.2'
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
|
||||
@ -12,16 +12,13 @@ import com.google.android.material.navigation.NavigationView;
|
||||
import androidx.core.view.GravityCompat;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
@ -169,7 +166,7 @@ public class MainActivity extends BaseActivity
|
||||
private void initGestMenu() {
|
||||
Menu menu = mBinding.navView.getMenu();
|
||||
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getIstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
|
||||
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
||||
|
||||
@ -196,7 +193,7 @@ public class MainActivity extends BaseActivity
|
||||
}
|
||||
|
||||
private MenuConfiguration.MenuItem getMenuItem(@IdRes int menuId) {
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getIstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
|
||||
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
||||
|
||||
@ -315,7 +312,7 @@ public class MainActivity extends BaseActivity
|
||||
|
||||
private void init(){
|
||||
|
||||
ServerStatusChecker.getIstance().addCallback(value -> {
|
||||
ServerStatusChecker.getInstance().addCallback(value -> {
|
||||
if(value && (!mIsOnline || firstCheckExecution)){
|
||||
|
||||
SettingsManager.loadDBVariables(() -> {
|
||||
|
||||
@ -12,6 +12,7 @@ public class BaseCustomConfiguration implements ICustomConfiguration {
|
||||
public static class Keys {
|
||||
public static int MENU_CONFIGURATION = 0;
|
||||
public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1;
|
||||
public static int CUSTOM_DYNAMIC_VERSION_PATH = 2;
|
||||
}
|
||||
|
||||
protected HashMap<Integer, Object> configurations = new HashMap<Integer, Object>() {{
|
||||
|
||||
@ -59,7 +59,7 @@ public class ClassRouter {
|
||||
}
|
||||
|
||||
|
||||
public static <T> T getIstance(PATH path) {
|
||||
public static <T> T getInstance(PATH path) {
|
||||
try {
|
||||
|
||||
if (!checkIClassExists(path)) {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Delete;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
@ -39,7 +40,7 @@ public interface ArticoloOrdineDao {
|
||||
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
|
||||
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
|
||||
|
||||
@Query( " SELECT articoli_ordine.* " +
|
||||
@Query(" SELECT articoli_ordine.* " +
|
||||
" FROM articoli_ordine " +
|
||||
" LEFT OUTER JOIN articoli_griglia on articoli_ordine.cod_mart = articoli_griglia.cod_mart " +
|
||||
" WHERE " +
|
||||
@ -50,4 +51,8 @@ public interface ArticoloOrdineDao {
|
||||
" AND articoli_ordine.id_ordine = :ordineId " +
|
||||
" LIMIT 1")
|
||||
ArticoloOrdine findArticoloByBarcodeAndOrdine(int ordineId, String barcode);
|
||||
|
||||
@Delete
|
||||
void delete(ArticoloOrdine articolo);
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Delete;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
@ -27,4 +28,7 @@ public interface OrdineDao {
|
||||
|
||||
@Update
|
||||
void update(Ordine ordine);
|
||||
|
||||
@Delete
|
||||
void delete(Ordine ordine);
|
||||
}
|
||||
|
||||
@ -143,7 +143,8 @@ public class Ordine {
|
||||
}
|
||||
|
||||
public void setCodMdep(@Nullable String codMdep) {
|
||||
this.codMdep = codMdep; }
|
||||
this.codMdep = codMdep;
|
||||
}
|
||||
|
||||
public void setDataOrdS(String dataOrd) {
|
||||
setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd));
|
||||
|
||||
@ -94,4 +94,16 @@ public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableA
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError) {
|
||||
execute(()->{
|
||||
try{
|
||||
mRepository.delete(articolo);
|
||||
onSave.run();
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGrigl
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class OrdineRepository extends Repository{
|
||||
public class OrdineRepository extends Repository {
|
||||
|
||||
private OrdineDao mRepository;
|
||||
|
||||
@ -18,44 +18,45 @@ public class OrdineRepository extends Repository{
|
||||
this.mRepository = MainApplication.getOrdiniRepository();
|
||||
}
|
||||
|
||||
public void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
public void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError) {
|
||||
Runnable query = () -> {
|
||||
try {
|
||||
onSuccess.run(mRepository.getAll());
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
public void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
|
||||
public void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError) {
|
||||
Runnable query = () -> {
|
||||
try {
|
||||
onSuccess.run(mRepository.getAllTrasnmitted());
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError) {
|
||||
Runnable query = () -> {
|
||||
try {
|
||||
onSuccess.run(mRepository.getAllOpenOrdersByGriglia(griglia.getGrigliaId()));
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError){
|
||||
execute(()->{
|
||||
try{
|
||||
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError) {
|
||||
execute(() -> {
|
||||
try {
|
||||
Long id = mRepository.insert(ordine);
|
||||
onSuccess.run(id.intValue());
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
@ -63,11 +64,22 @@ public class OrdineRepository extends Repository{
|
||||
|
||||
|
||||
public void updateOrder(Ordine ordine, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
||||
execute(()->{
|
||||
try{
|
||||
execute(() -> {
|
||||
try {
|
||||
mRepository.update(ordine);
|
||||
onSuccess.run(ordine);
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs<Exception> onError) {
|
||||
execute(() -> {
|
||||
try {
|
||||
mRepository.delete(ordine);
|
||||
onSuccess.run();
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
|
||||
@ -11,8 +11,10 @@ public class BaseActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||
if (event.getDeviceId() != -1 && event.getDeviceId() != 0 && event.getAction() == KeyEvent.ACTION_DOWN){
|
||||
BarcodeManager.onKeyDown(event.getKeyCode(),event);
|
||||
if (event.getDeviceId() != -1 && event.getDeviceId() != 0) {
|
||||
if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
||||
BarcodeManager.onKeyDown(event.getKeyCode(), event);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return super.dispatchKeyEvent(event);
|
||||
|
||||
@ -37,7 +37,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
||||
public static void getArticoliListino(String codAlis, RunnableArgs<GrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
|
||||
ordiniARestService
|
||||
.getArticoliListino(codAlis, SettingsManager.i().userSession.profileDB, SettingsManager.i().user.username, SettingsManager.i().user.password)
|
||||
.getArticoliListino(codAlis)
|
||||
.enqueue(new Callback<ServiceRESTResponse<GrigliaDTO>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<GrigliaDTO>> call, Response<ServiceRESTResponse<GrigliaDTO>> response) {
|
||||
@ -94,7 +94,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
|
||||
ordiniARestService
|
||||
.saveOrdine(saveDTO, SettingsManager.i().userSession.profileDB, SettingsManager.i().user.username, SettingsManager.i().user.password)
|
||||
.saveOrdine(saveDTO)
|
||||
.enqueue(new Callback<List<ServiceRESTResponse<DtbOrdt>>>() {
|
||||
@Override
|
||||
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
|
||||
|
||||
@ -15,8 +15,8 @@ import retrofit2.http.Query;
|
||||
public interface PVOrdiniAcquistoRESTConsumerService {
|
||||
|
||||
@POST("SM2GetElencoArticoli")
|
||||
Call<ServiceRESTResponse<GrigliaDTO>> getArticoliListino(@Query("chiaveGriglia") String codAlis, @Query("profileDb") String profileDb, @Header("username") String username, @Header("password") String password);
|
||||
Call<ServiceRESTResponse<GrigliaDTO>> getArticoliListino(@Query("chiaveGriglia") String codAlis);
|
||||
|
||||
@POST("SM2SaveTerminalino")
|
||||
Call<List<ServiceRESTResponse<DtbOrdt>>> saveOrdine(@Body SaveDTO saveDTO, @Query("profileDb") String profileDb, @Header("username") String username, @Header("password") String password);
|
||||
Call<List<ServiceRESTResponse<DtbOrdt>>> saveOrdine(@Body SaveDTO saveDTO);
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
|
||||
public class ServerStatusChecker {
|
||||
|
||||
private static ServerStatusChecker istance = new ServerStatusChecker();
|
||||
private static ServerStatusChecker instance = new ServerStatusChecker();
|
||||
|
||||
private List<RunnableArgs<Boolean>> mCallback = new ArrayList<>();
|
||||
|
||||
@ -47,17 +47,17 @@ public class ServerStatusChecker {
|
||||
|
||||
|
||||
public static void init(){
|
||||
istance.shouldExecute = true;
|
||||
instance.shouldExecute = true;
|
||||
|
||||
istance.handler.post(istance.runnableCode);
|
||||
instance.handler.post(instance.runnableCode);
|
||||
}
|
||||
|
||||
public static void dispose() {
|
||||
istance.shouldExecute = false;
|
||||
instance.shouldExecute = false;
|
||||
}
|
||||
|
||||
public static ServerStatusChecker getIstance() {
|
||||
return istance;
|
||||
public static ServerStatusChecker getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import android.app.Activity;
|
||||
import android.app.DownloadManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.Uri;
|
||||
@ -12,23 +11,33 @@ import android.os.Build;
|
||||
import android.os.Environment;
|
||||
|
||||
import com.github.javiersantos.appupdater.AppUpdater;
|
||||
import com.github.javiersantos.appupdater.AppUpdaterUtils;
|
||||
import com.github.javiersantos.appupdater.enums.AppUpdaterError;
|
||||
import com.github.javiersantos.appupdater.enums.Display;
|
||||
import com.github.javiersantos.appupdater.enums.UpdateFrom;
|
||||
import com.github.javiersantos.appupdater.objects.Update;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import androidx.core.content.FileProvider;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
|
||||
public class UpdatesManager {
|
||||
|
||||
public static void init(Activity context) {
|
||||
String suffix;
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
try{
|
||||
suffix = customConfiguration.getConfig(BaseCustomConfiguration.Keys.CUSTOM_DYNAMIC_VERSION_PATH);
|
||||
if (suffix == null){
|
||||
suffix = "";
|
||||
}
|
||||
}catch (Exception e){
|
||||
suffix = "";
|
||||
}
|
||||
|
||||
String currentVersionUrl = "http://" + SettingsManager.i().server.host + ":" + SettingsManager.i().server.port + "/ems-api/wms/currentVersion";
|
||||
String currentDownloadUrl = "http://" + SettingsManager.i().server.host + ":" + SettingsManager.i().server.port + "/ems-api/wms/android-release_v2.apk";
|
||||
String currentDownloadUrl = "http://" + SettingsManager.i().server.host + ":" + SettingsManager.i().server.port + "/ems-api/wms/android-release"+suffix+"_v2.apk";
|
||||
|
||||
|
||||
AppUpdater appUpdater = new AppUpdater(context)
|
||||
|
||||
@ -94,7 +94,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
||||
|
||||
|
||||
private void init(){
|
||||
ServerStatusChecker.getIstance().addCallback(value -> {
|
||||
ServerStatusChecker.getInstance().addCallback(value -> {
|
||||
if(value && mBindings.noConnectionTopLayout.isExpanded()){
|
||||
|
||||
collapseNoConnectionLayout();
|
||||
@ -215,7 +215,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
||||
|
||||
|
||||
private void initGestMenu() {
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getIstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
|
||||
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
||||
|
||||
|
||||
@ -28,10 +28,12 @@ import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsu
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.ActivityPvordineAcquistoEditBinding;
|
||||
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.adapter.OrdineAcquistoArtListAdapter;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
|
||||
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
@ -40,7 +42,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
private Griglia mGriglia;
|
||||
private List<ArticoloOrdine> mArticoli = new ArrayList<>();
|
||||
private PVEditOrderHelper mhelper;
|
||||
private ActivityPvordineAcquistoEditBinding mBinding;
|
||||
private ActivityPvOrdineAcquistoEditBinding mBinding;
|
||||
private int mBarcodeScannerIstanceID;
|
||||
private OrdineAcquistoArtListAdapter mAdapter;
|
||||
|
||||
@ -49,15 +51,22 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mhelper = new PVEditOrderHelper(this);
|
||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pvordine_acquisto_edit);
|
||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pv_ordine_acquisto_edit);
|
||||
mBinding.setViewModel(this);
|
||||
mOrdine = DataCache.retrieveItem(getIntent().getStringExtra("keyOrdine"));
|
||||
if (mOrdine.isTransmitted()){
|
||||
setSupportActionBar(mBinding.toolbar);
|
||||
mBinding.toolbar.setTitle(R.string.edit_order);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
if (mOrdine.isTransmitted()) {
|
||||
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
|
||||
closeEdit();
|
||||
}
|
||||
String testataOrdString = String.format(this.getString(R.string.ord_acq_testata), String.valueOf(mOrdine.getOrdineId()), UtilityDate.formatDate(mOrdine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
mBinding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
||||
FabMenuCustomAnimations.changeIconOnFocus(mBinding.closeActivityFab, R.drawable.ic_check_white_24dp, R.drawable.ic_close_24dp);
|
||||
|
||||
|
||||
initRecyclerView();
|
||||
fetchDetails();
|
||||
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
@ -66,6 +75,12 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSupportNavigateUp() {
|
||||
onBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mBinding.articoliOrdineList.setHasFixedSize(true);
|
||||
|
||||
@ -74,18 +89,47 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
|
||||
mBinding.articoliOrdineList.addItemDecoration(itemDecorator);
|
||||
mAdapter = new OrdineAcquistoArtListAdapter(this, mArticoli, this::addArticolo);
|
||||
mAdapter = new OrdineAcquistoArtListAdapter(this, mArticoli, this::selectAction);
|
||||
mBinding.articoliOrdineList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void selectAction(ArticoloOrdine articoloOrdine) {
|
||||
mBinding.closeActivityFab.close(false);
|
||||
BarcodeManager.disable();
|
||||
runOnUiThread(() -> DialogAskAction.make(this,
|
||||
articoloOrdine.getDescrizione(),
|
||||
articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(),
|
||||
() -> this.addArticolo(articoloOrdine),
|
||||
() -> this.deleteArticolo(articoloOrdine)).show());
|
||||
|
||||
}
|
||||
|
||||
private void deleteArticolo(ArticoloOrdine articoloOrdine) {
|
||||
String text = "Stai per eliminare l'articolo <b> " + articoloOrdine.getDescrizione() + "</b> dall'ordine, <br> sei sicuro?";
|
||||
|
||||
DialogSimpleMessageHelper.makeWarningDialog(this, new SpannableString(Html.fromHtml(text)), null, () -> this.runOnUiThread(() -> {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mhelper.removeArticoloFromOrdine(articoloOrdine, () -> {
|
||||
progress.dismiss();
|
||||
BarcodeManager.enable();
|
||||
runOnUiThread(this::fetchArticoli);
|
||||
}, e -> {
|
||||
progress.dismiss();
|
||||
runOnUiThread(() -> UtilityExceptions.defaultException(this, e));
|
||||
});
|
||||
}), () -> {
|
||||
}).show();
|
||||
}
|
||||
|
||||
private void handleException(Exception ex) {
|
||||
runOnUiThread(()->{
|
||||
runOnUiThread(() -> {
|
||||
BarcodeManager.enable();
|
||||
UtilityExceptions.defaultException(this, ex, false);
|
||||
});
|
||||
}
|
||||
|
||||
private void onScanSuccessful(BarcodeScanDTO dto) {
|
||||
mBinding.closeActivityFab.close(false);
|
||||
BarcodeManager.disable();
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mhelper.checkArticolo(
|
||||
@ -103,16 +147,13 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
}
|
||||
|
||||
private void addArticolo(ArticoloOrdine articoloOrdine) {
|
||||
runOnUiThread(()->{
|
||||
EditArticoloDialog.make(this, articoloOrdine, articolo -> {
|
||||
BarcodeManager.enable();
|
||||
if (articolo == null) {
|
||||
Toast.makeText(this, "Inserimento articolo annullato", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
fetchArticoli();
|
||||
}
|
||||
}).show();
|
||||
});
|
||||
runOnUiThread(() -> EditArticoloDialog.make(this, articoloOrdine, articolo -> {
|
||||
BarcodeManager.enable();
|
||||
if (articolo != null) {
|
||||
Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
fetchArticoli();
|
||||
}).show());
|
||||
}
|
||||
|
||||
private void fetchDetails() {
|
||||
@ -122,7 +163,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
|
||||
private void fetchGriglia() {
|
||||
mhelper.loadGriglia(mOrdine.getIdGriglia(), griglia -> {
|
||||
runOnUiThread(()->{
|
||||
runOnUiThread(() -> {
|
||||
mGriglia = griglia;
|
||||
mBinding.codAlis.setText(mGriglia.getCodAlis());
|
||||
});
|
||||
@ -134,10 +175,12 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
mhelper.loadArticoli(mOrdine, articoli -> {
|
||||
progress.dismiss();
|
||||
mArticoli = articoli;
|
||||
runOnUiThread(()->{
|
||||
runOnUiThread(() -> {
|
||||
mAdapter.updateItems(mArticoli);
|
||||
mBinding.countArtOrd.setText(String.valueOf(mArticoli.size()));
|
||||
mBinding.pvOrdineExport.setVisibility(mArticoli.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
mBinding.pvOrdineExport.setVisibility(mArticoli.size() > 0 ? View.INVISIBLE : View.GONE);
|
||||
mBinding.closeActivityFab.close(false);
|
||||
mBinding.scanArtSpinner.setVisibility(mArticoli.size() > 0 ? View.GONE : View.VISIBLE);
|
||||
});
|
||||
}, this::handleException);
|
||||
}
|
||||
@ -148,15 +191,15 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
|
||||
public void exportOrdine() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
PVOrdiniAcquistoRESTConsumer.saveOrdine(mOrdine , mArticoli,mGriglia,(ordine)->{
|
||||
PVOrdiniAcquistoRESTConsumer.saveOrdine(mOrdine, mArticoli, mGriglia, (ordine) -> {
|
||||
progress.dismiss();
|
||||
runOnUiThread(()-> {
|
||||
runOnUiThread(() -> {
|
||||
Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show();
|
||||
onBackPressed();
|
||||
});
|
||||
},e-> runOnUiThread(()-> {
|
||||
}, e -> runOnUiThread(() -> {
|
||||
progress.dismiss();
|
||||
UtilityExceptions.defaultException(this,e);
|
||||
UtilityExceptions.defaultException(this, e);
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@ -93,7 +93,7 @@ public class OrdineAcquistoArtListAdapter extends SectionedRecyclerViewAdapter<O
|
||||
|
||||
@Override
|
||||
public void onBindSubheaderViewHolder(OrdineAcquistoArtListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||
subheaderHolder.binding.title.setText(mContext.getString(R.string.ordini_a_aperti));
|
||||
subheaderHolder.binding.title.setText(mContext.getString(R.string.item_list));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -6,6 +6,8 @@ import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.text.Editable;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
@ -17,9 +19,11 @@ import it.integry.integrywmsnative.core.expansion.BaseDialog;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityFocus;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class EditArticoloDialog {
|
||||
|
||||
@ -32,7 +36,6 @@ public class EditArticoloDialog {
|
||||
private PVEditOrderHelper mHelper;
|
||||
|
||||
private ArticoloOrdine mArticolo;
|
||||
|
||||
private ArticoloOrdine mSavedArt;
|
||||
|
||||
private boolean mLockedInput = false;
|
||||
@ -41,6 +44,7 @@ public class EditArticoloDialog {
|
||||
mContext = context;
|
||||
mArticolo = articolo;
|
||||
mHelper = new PVEditOrderHelper(context);
|
||||
mSavedArt = null;
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_pv_edit_articolo, null, false);
|
||||
@ -51,8 +55,12 @@ public class EditArticoloDialog {
|
||||
UtilityDialog.setTo90PercentSize(mContext, mDialog);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
int qtaCnf = (int)Math.ceil(mArticolo.getQtaOrd() / mArticolo.getQtaCnf());
|
||||
mBinding.qtaTot.setText(String.valueOf(mArticolo.getQtaOrd()));
|
||||
mSavedArt = null;
|
||||
mBinding.qtaCnf.setText(String.valueOf(qtaCnf));
|
||||
mDialog.setOnShowListener(dialog -> {
|
||||
UtilityFocus.focusTextBox(mContext,mBinding.qtaTot);
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
onDialogDismiss.run(mSavedArt);
|
||||
@ -84,7 +92,7 @@ public class EditArticoloDialog {
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
setQtaCnf(s.toString().length() >0 ? Float.parseFloat(s.toString()) : 0);
|
||||
setQtaCnf(s.toString().length() >0 ? Integer.parseInt(s.toString()) : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -93,7 +101,7 @@ public class EditArticoloDialog {
|
||||
}
|
||||
});
|
||||
}
|
||||
public void setQtaCnf(float qtaCnf){
|
||||
public void setQtaCnf(int qtaCnf){
|
||||
if (mLockedInput){
|
||||
mLockedInput = false;
|
||||
}else{
|
||||
@ -109,8 +117,7 @@ public class EditArticoloDialog {
|
||||
mLockedInput = false;
|
||||
}else{
|
||||
mLockedInput = true;
|
||||
float qtaCnf = qtaOrd / mArticolo.getQtaCnf();
|
||||
mBinding.qtaCnf.setText(String.valueOf(qtaCnf));
|
||||
mBinding.qtaCnf.setText(String.valueOf((int)Math.ceil(qtaOrd / mArticolo.getQtaCnf())));
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,6 +136,8 @@ public class EditArticoloDialog {
|
||||
|
||||
}catch (Exception e){
|
||||
mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e));
|
||||
progress.dismiss();
|
||||
return;
|
||||
}
|
||||
mHelper.saveArticoloToOrdine(mArticolo, ()->{
|
||||
mSavedArt = mArticolo;
|
||||
|
||||
@ -67,4 +67,8 @@ public class PVEditOrderHelper {
|
||||
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onFail) {
|
||||
mArticoliOrdineRepository.saveArticoloToOrdine(articolo, onSave, onFail);
|
||||
}
|
||||
|
||||
public void removeArticoloFromOrdine(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError){
|
||||
mArticoliOrdineRepository.deleteArticolo(articolo, onSave, onError);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,10 +4,12 @@ import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
@ -22,6 +24,7 @@ import java.util.List;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
@ -30,6 +33,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding;
|
||||
@ -38,6 +42,7 @@ import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLis
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||
@ -47,6 +52,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
private Griglia mGriglia;
|
||||
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
||||
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||
private boolean mRedirectToNewOrder = true;
|
||||
|
||||
|
||||
public PVOrdiniAcquistoGrigliaFragment() {
|
||||
@ -119,6 +125,11 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
mBinding.ordiniAEmptyView.setVisibility(ordini == null || ordini.size() <= 0 ? View.VISIBLE : View.GONE);
|
||||
refreshRenderedOrdini(ordini);
|
||||
mAdapter.updateItems(mRenderedOrderList);
|
||||
if (mRenderedOrderList.size() <= 0 && mRedirectToNewOrder) {
|
||||
createNewOrder();
|
||||
}else{
|
||||
mRedirectToNewOrder = false;
|
||||
}
|
||||
}
|
||||
|
||||
public Griglia getGriglia() {
|
||||
@ -133,11 +144,11 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider));
|
||||
mBinding.ordiniAApertiMainList.addItemDecoration(itemDecorator);
|
||||
mAdapter = new OrdineAcquistoPvOpenListAdapter(getActivity(), mRenderedOrderList, selectOrdine);
|
||||
mAdapter = new OrdineAcquistoPvOpenListAdapter(getActivity(), mRenderedOrderList, this::selectAction);
|
||||
mBinding.ordiniAApertiMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private RunnableArgs<Ordine> selectOrdine = ordine -> {
|
||||
private void editOrdine(Ordine ordine) {
|
||||
|
||||
Intent myIntent = new Intent(getActivity(), PVOrdineAcquistoEditActivity.class);
|
||||
|
||||
@ -146,18 +157,50 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
|
||||
getActivity().startActivity(myIntent);
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void selectAction(Ordine ordine) {
|
||||
getActivity().runOnUiThread(() -> DialogAskAction.make(getActivity(),
|
||||
Html.fromHtml(String.format(this.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))).toString(),
|
||||
ordine.getCountArticoli() + " articoli",
|
||||
() -> this.editOrdine(ordine),
|
||||
() -> this.deleteOrdine(ordine)).show());
|
||||
|
||||
}
|
||||
|
||||
private void deleteOrdine(Ordine ordine) {
|
||||
|
||||
|
||||
String text = "Stai per eliminare un ordine sei sicuro?";
|
||||
|
||||
DialogSimpleMessageHelper.makeWarningDialog(getActivity(), new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||
mHelper.deleteOrder(ordine, () -> {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
progress.dismiss();
|
||||
Toast.makeText(getActivity(), "Ordine eliminato!", Toast.LENGTH_SHORT);
|
||||
fetchOrders();
|
||||
});
|
||||
}, e -> {
|
||||
progress.dismiss();
|
||||
getActivity().runOnUiThread(() -> UtilityExceptions.defaultException(getActivity(), e));
|
||||
});
|
||||
}), () -> {
|
||||
}).show();
|
||||
}
|
||||
|
||||
private void refreshRenderedOrdini(List<OrdineWrapper> ordini) {
|
||||
mRenderedOrderList.clear();
|
||||
if (ordini != null) mRenderedOrderList.addAll(ordini);
|
||||
mRenderedOrderList.addAll(ordini);
|
||||
}
|
||||
|
||||
public void createNewOrder() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress));
|
||||
mHelper.createNewOrder(mGriglia, order -> {
|
||||
progress.dismiss();
|
||||
getActivity().runOnUiThread(()-> selectOrdine.run(order));
|
||||
getActivity().runOnUiThread(() -> editOrdine(order));
|
||||
|
||||
}, e -> getActivity().runOnUiThread(() -> UtilityExceptions.defaultException(getActivity(), e, progress)));
|
||||
}
|
||||
@ -175,7 +218,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (mGriglia != null){
|
||||
if (mGriglia != null) {
|
||||
fetchOrders();
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ public class OrdineAcquistoPvOpenListAdapter extends SectionedRecyclerViewAdapte
|
||||
private Context mContext;
|
||||
|
||||
private List<OrdineWrapper> mDataset;
|
||||
RunnableArgs<Ordine> mOnItemSelect;
|
||||
private RunnableArgs<Ordine> mOnItemSelect;
|
||||
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
@ -70,7 +70,7 @@ public class OrdineAcquistoPvOpenListAdapter extends SectionedRecyclerViewAdapte
|
||||
private List<OrdineWrapper> orderItems(List<OrdineWrapper> dataset) {
|
||||
return Stream.of(dataset)
|
||||
.distinctBy(OrdineWrapper::getOrdine)
|
||||
.sortBy(x -> UtilityDate.formatDate(x.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||
.sortBy(x -> x.getOrdine().getOrdineId())
|
||||
.toList();
|
||||
|
||||
}
|
||||
@ -103,13 +103,11 @@ public class OrdineAcquistoPvOpenListAdapter extends SectionedRecyclerViewAdapte
|
||||
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
holder.binding.numArts.setText(String.format(mContext.getString(R.string.ord_acq_num_articoli), String.valueOf(ordineWrapper.getCountArticoli())));
|
||||
holder.binding.numArts.setText(Html.fromHtml(String.format(mContext.getString(R.string.ord_acq_num_articoli), String.valueOf(ordineWrapper.getCountArticoli()))));
|
||||
|
||||
holder.binding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
||||
|
||||
holder.binding.getRoot().setOnClickListener(v -> {
|
||||
mOnItemSelect.run(ordine);
|
||||
});
|
||||
holder.binding.getRoot().setOnClickListener(v -> mOnItemSelect.run(ordine));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ public class DialogScanLisA {
|
||||
});
|
||||
};
|
||||
|
||||
RunnableArgs<Griglia> onGrigliaAvaialable = griglia->{
|
||||
RunnableArgs<Griglia> onGrigliaAvailable = griglia->{
|
||||
mContext.runOnUiThread(()->{
|
||||
progressDialog.dismiss();
|
||||
mGriglia = griglia;
|
||||
@ -95,13 +95,9 @@ public class DialogScanLisA {
|
||||
repository.findByCodAlis(data.getStringValue(),griglia->{
|
||||
if (griglia != null){
|
||||
griglia.getGriglia().setCountArticoli(griglia.getCountArticoli());
|
||||
if (griglia.getCountArticoli() >0){
|
||||
onGrigliaAvaialable.run(griglia.getGriglia());
|
||||
}else{
|
||||
mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvaialable,mOnError);
|
||||
}
|
||||
mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvailable,mOnError);
|
||||
}else{
|
||||
mHelper.downloadAndSaveLisA(data.getStringValue(), onGrigliaAvaialable,mOnError);
|
||||
mHelper.downloadAndSaveLisA(data.getStringValue(), onGrigliaAvailable,mOnError);
|
||||
}
|
||||
},mOnError);
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||
@ -21,11 +22,14 @@ public class OrdineAcquistoPvHelper {
|
||||
private Context mContext;
|
||||
private GrigliaRepository mGrigliaRepository;
|
||||
private ArticoliGrigliaRepository mArticoliGrigliaRepository;
|
||||
private ArticoliOrdineRepository mArticoliOrdineRepository;
|
||||
private OrdineRepository mOrdineRepository;
|
||||
|
||||
public OrdineAcquistoPvHelper(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
this.mGrigliaRepository = new GrigliaRepository();
|
||||
this.mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
|
||||
this.mArticoliOrdineRepository = new ArticoliOrdineRepository();
|
||||
this.mOrdineRepository = new OrdineRepository();
|
||||
|
||||
}
|
||||
@ -67,9 +71,13 @@ public class OrdineAcquistoPvHelper {
|
||||
Ordine ordine = new Ordine();
|
||||
ordine.setDataIns(new Date());
|
||||
ordine.setIdGriglia(griglia.getGrigliaId());
|
||||
mOrdineRepository.insert(ordine,id->{
|
||||
mOrdineRepository.insert(ordine, id -> {
|
||||
ordine.setOrdineId(id);
|
||||
onSuccess.run(ordine);
|
||||
},onError);
|
||||
}, onError);
|
||||
}
|
||||
|
||||
public void deleteOrder(Ordine ordine, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||
mOrdineRepository.delete(ordine, onSuccess, onFail);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,6 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.MultiAutoCompleteTextView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
@ -131,7 +130,7 @@ public class DialogVenditaFiltroAvanzato {
|
||||
}
|
||||
|
||||
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getIstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
|
||||
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getInstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
|
||||
|
||||
// bindings.filledExposedDropdownDataCons.setOnFocusChangeListener((v, hasFocus) -> {
|
||||
// bindings.filledExposedDropdownDataCons.callOnClick();
|
||||
|
||||
@ -100,7 +100,7 @@ public class VenditaOrdineInevasoHelper {
|
||||
|
||||
public List<VenditaOrdineInevasoListViewModel> getListViewModelPerPosizione(List<List<PickingObjectDTO>> groupedRighe, List<MtbColr> mtbColrs) {
|
||||
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getIstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
|
||||
List<VenditaOrdineInevasoListViewModel> listModel = new ArrayList<>();
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
@ -921,7 +921,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||
|
||||
IOrdiniVendita ordiniVendita = ClassRouter.getIstance(ClassRouter.PATH.ORDINI_VENDITA);
|
||||
IOrdiniVendita ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
|
||||
|
||||
ordiniVendita.distribuisciCollo(progress, cloneMtbColt, mTestateOrdini, mtbColts -> {
|
||||
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
package it.integry.integrywmsnative.ui;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.view.animation.OvershootInterpolator;
|
||||
|
||||
import com.github.clans.fab.FloatingActionMenu;
|
||||
|
||||
public class FabMenuCustomAnimations {
|
||||
|
||||
public static void changeIconOnFocus(FloatingActionMenu fabMenu, int iconOpen, int iconClose) {
|
||||
AnimatorSet set = new AnimatorSet();
|
||||
|
||||
ObjectAnimator scaleOutX = ObjectAnimator.ofFloat(fabMenu.getMenuIconView(), "scaleX", 1.0f, 0.2f);
|
||||
ObjectAnimator scaleOutY = ObjectAnimator.ofFloat(fabMenu.getMenuIconView(), "scaleY", 1.0f, 0.2f);
|
||||
|
||||
ObjectAnimator scaleInX = ObjectAnimator.ofFloat(fabMenu.getMenuIconView(), "scaleX", 0.2f, 1.0f);
|
||||
ObjectAnimator scaleInY = ObjectAnimator.ofFloat(fabMenu.getMenuIconView(), "scaleY", 0.2f, 1.0f);
|
||||
|
||||
scaleOutX.setDuration(50);
|
||||
scaleOutY.setDuration(50);
|
||||
|
||||
scaleInX.setDuration(150);
|
||||
scaleInY.setDuration(150);
|
||||
|
||||
scaleInX.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
fabMenu.getMenuIconView().setImageResource(fabMenu.isOpened() ? iconOpen:iconClose);
|
||||
}
|
||||
});
|
||||
|
||||
set.play(scaleOutX).with(scaleOutY);
|
||||
set.play(scaleInX).with(scaleInY).after(scaleOutX);
|
||||
set.setInterpolator(new OvershootInterpolator(2));
|
||||
|
||||
fabMenu.setIconToggleAnimatorSet(set);
|
||||
}
|
||||
public static void changeIconOnFocus(FloatingActionMenu fabMenu, int iconOpen) {
|
||||
changeIconOnFocus(fabMenu,iconOpen,iconOpen);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package it.integry.integrywmsnative.view.dialogs;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialog;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||
import it.integry.integrywmsnative.databinding.DialogAskActionEditDeleteBinding;
|
||||
|
||||
public class DialogAskAction {
|
||||
private Activity mContext;
|
||||
private Dialog mDialog;
|
||||
private Runnable mOnEditSelected;
|
||||
private Runnable mOnDeleteSelected;
|
||||
|
||||
private DialogAskAction(Activity context,String title, String subTitle, Runnable onEditSelected, Runnable onDeleteSelected) {
|
||||
mContext = context;
|
||||
mOnEditSelected = onEditSelected;
|
||||
mOnDeleteSelected = onDeleteSelected;
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
DialogAskActionEditDeleteBinding mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_action_edit_delete, null, false);
|
||||
mBinding.setViewmodel(this);
|
||||
|
||||
mDialog = new BaseDialog(context);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
UtilityDialog.setTo90PercentSize(mContext, mDialog);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
mBinding.bottomSheetActionsTitle.setText(title);
|
||||
mBinding.bottomSheetActionsSubtitle.setText(subTitle);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static Dialog make(Activity context, String title, String subtitle, Runnable onEdit, Runnable onDelete) {
|
||||
return new DialogAskAction(context, title,subtitle,onEdit,onDelete).mDialog;
|
||||
}
|
||||
|
||||
|
||||
public void onEdit(){
|
||||
mDialog.dismiss();
|
||||
mOnEditSelected.run();
|
||||
}
|
||||
public void onDelete(){
|
||||
mDialog.dismiss();
|
||||
mOnDeleteSelected.run();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
255
app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml
Normal file
255
app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml
Normal file
@ -0,0 +1,255 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto">
|
||||
<data>
|
||||
|
||||
<import type="android.view.View" />
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" />
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/full_white"
|
||||
android:orientation="vertical"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/full_white"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="8dp"
|
||||
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
|
||||
|
||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
||||
android:id="@+id/elevated_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/toolbar_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="modifica ordine"
|
||||
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
|
||||
android:layout_gravity="start" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/toolbar_tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="modifica ordine"
|
||||
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
|
||||
android:layout_gravity="end" />
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:background="@drawable/gray_detail_background_round8"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="ordine: "
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/order_identifier"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="22 ottobre 2018" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Griglia "
|
||||
android:textColor="@android:color/black" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/cod_alis"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="italic"
|
||||
tools:text="4SECCO" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="N. articoli "
|
||||
android:textColor="@android:color/black" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/count_art_ord"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
tools:text="10" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/articoli_ordine_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="92dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp" />
|
||||
<LinearLayout
|
||||
android:id="@+id/scan_art_spinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="24dp"
|
||||
android:visibility="visible"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progressBar"
|
||||
style="?android:attr/progressBarStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_horizontal"
|
||||
style="@style/AppTheme.NewMaterial.Text"
|
||||
android:text="@string/scan_item"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<com.github.clans.fab.FloatingActionMenu
|
||||
android:id="@+id/close_activity_fab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_anchor="@+id/linearLayout2"
|
||||
app:layout_anchorGravity="center"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:menu_icon="@drawable/ic_check_white_24dp"
|
||||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
||||
fab:menu_buttonSpacing="0dp"
|
||||
fab:menu_colorNormal="@color/success_color"
|
||||
fab:menu_colorPressed="@color/green_400"
|
||||
fab:menu_labels_colorNormal="@color/white"
|
||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
||||
fab:menu_labels_cornerRadius="3dp"
|
||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
||||
fab:menu_labels_margin="0dp"
|
||||
fab:menu_labels_padding="8dp"
|
||||
fab:menu_labels_paddingBottom="4dp"
|
||||
fab:menu_labels_paddingLeft="8dp"
|
||||
fab:menu_labels_paddingRight="8dp"
|
||||
fab:menu_labels_paddingTop="4dp"
|
||||
fab:menu_labels_position="left"
|
||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
||||
fab:menu_labels_showShadow="true"
|
||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
||||
fab:menu_labels_textSize="18sp"
|
||||
fab:menu_openDirection="up"
|
||||
fab:menu_shadowColor="#66000000"
|
||||
fab:menu_shadowRadius="4dp"
|
||||
fab:menu_shadowXOffset="1dp"
|
||||
fab:menu_shadowYOffset="3dp"
|
||||
fab:menu_showShadow="true">
|
||||
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/pv_ordine_export"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_black_upload"
|
||||
android:visibility="gone"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewModel.exportOrdine()}"
|
||||
fab:fab_label="@string/close_and_export" />
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/pv_ordine_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_check_black_24dp"
|
||||
android:visibility="visible"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewModel.closeEdit()}"
|
||||
fab:fab_label="@string/close_and_exit" />
|
||||
|
||||
|
||||
</com.github.clans.fab.FloatingActionMenu>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
</layout>
|
||||
@ -1,202 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto">
|
||||
<data>
|
||||
|
||||
<import type="android.view.View" />
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" />
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/full_white">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="8dp"
|
||||
android:background="@color/full_white"
|
||||
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/gray_detail_background_round8"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="16dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="ordine: "
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="16sp"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/order_identifier"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="22 ottobre 2018"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Griglia "
|
||||
android:textColor="@android:color/black"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/cod_alis"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="4SECCO"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="italic"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="12dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="N. articoli "
|
||||
android:textColor="@android:color/black"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/count_art_ord"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="10"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/articoli_ordine_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="92dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<com.github.clans.fab.FloatingActionMenu
|
||||
android:id="@+id/close_activity_fab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
||||
fab:menu_buttonSpacing="0dp"
|
||||
fab:menu_colorNormal="@color/success_color"
|
||||
fab:menu_colorPressed="@color/green_400"
|
||||
fab:menu_fab_size="normal"
|
||||
fab:menu_labels_colorNormal="@color/white"
|
||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
||||
fab:menu_labels_cornerRadius="3dp"
|
||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
||||
fab:menu_labels_margin="0dp"
|
||||
fab:menu_labels_padding="8dp"
|
||||
fab:menu_labels_paddingBottom="4dp"
|
||||
fab:menu_labels_paddingLeft="8dp"
|
||||
fab:menu_labels_paddingRight="8dp"
|
||||
fab:menu_labels_paddingTop="4dp"
|
||||
fab:menu_labels_position="left"
|
||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
||||
fab:menu_labels_showShadow="true"
|
||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
||||
fab:menu_labels_textSize="18sp"
|
||||
app:fab_showAnimation="@anim/fab_scale_up"
|
||||
app:fab_hideAnimation="@anim/fab_scale_down"
|
||||
fab:menu_openDirection="up"
|
||||
fab:menu_shadowColor="#66000000"
|
||||
fab:menu_shadowRadius="4dp"
|
||||
fab:menu_shadowXOffset="1dp"
|
||||
fab:menu_shadowYOffset="3dp"
|
||||
fab:menu_showShadow="true"
|
||||
app:menu_icon="@drawable/ic_check_white_24dp"
|
||||
>
|
||||
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/pv_ordine_export"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_black_upload"
|
||||
android:visibility="gone"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewModel.exportOrdine()}"
|
||||
fab:fab_label="@string/close_and_export"
|
||||
/>
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/pv_ordine_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_check_black_24dp"
|
||||
android:visibility="visible"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewModel.closeEdit()}"
|
||||
fab:fab_label="@string/close_and_exit"
|
||||
android:scaleX="-1" />
|
||||
|
||||
|
||||
</com.github.clans.fab.FloatingActionMenu>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
</layout>
|
||||
169
app/src/main/res/layout/dialog_ask_action_edit_delete.xml
Normal file
169
app/src/main/res/layout/dialog_ask_action_edit_delete.xml
Normal file
@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.view.dialogs.DialogAskAction" />
|
||||
</data>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/base_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/bottom_sheet_actions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#fff"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp"
|
||||
app:behavior_hideable="true"
|
||||
app:behavior_peekHeight="0dp"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/dialog_actions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/dialog_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="@string/choose_action"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/primary_text_light"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
</RelativeLayout>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_gravity="center_vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/bottom_sheet_actions_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingStart="0dp"
|
||||
android:textColor="#444"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="Title" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/bottom_sheet_actions_subtitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="subtitle" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_action"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.50" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toStartOf="@id/guideline_action"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/bottom_sheet_actions_edit_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/white"
|
||||
android:padding="16dp"
|
||||
android:scaleX="1.5"
|
||||
android:scaleY="1.5"
|
||||
android:src="@drawable/ic_edit_24dp"
|
||||
android:onClick="@{()->viewmodel.onEdit()}"
|
||||
android:tint="@color/green_600" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/edit" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/guideline_action"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/bottom_sheet_actions_delete_btn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/white"
|
||||
android:padding="16dp"
|
||||
android:scaleX="1.5"
|
||||
android:scaleY="1.5"
|
||||
android:src="@drawable/ic_delete_24dp"
|
||||
android:onClick="@{()->viewmodel.onDelete()}"
|
||||
android:tint="@color/red_600" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/delete" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</layout>
|
||||
@ -1,18 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog" />
|
||||
</data>
|
||||
|
||||
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/base_root"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -40,12 +42,31 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="24dp"
|
||||
android:paddingTop="24dp"
|
||||
android:paddingRight="24dp">
|
||||
android:padding="24dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/dialog_title"
|
||||
android:id="@+id/dialog_actions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/dialog_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="@string/insert_qty"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/primary_text_light"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/dialog_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -53,10 +74,10 @@
|
||||
android:id="@+id/cod_mart"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:ellipsize="end"
|
||||
android:text="@{viewmodel.articolo.codMart}"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="codMart" />
|
||||
@ -68,26 +89,33 @@
|
||||
android:layout_below="@id/cod_mart"
|
||||
android:ellipsize="end"
|
||||
android:text="@{viewmodel.articolo.descrizione}"
|
||||
android:textColor="@color/red_600"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="DESCR ART" />
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:paddingLeft="8dp"
|
||||
android:text="Unità di misura: "
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="4dp"
|
||||
android:text="@{viewmodel.articolo.untMis}"
|
||||
android:textColor="#000"
|
||||
android:textSize="18sp"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
tools:text="(UM)" />
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
@ -167,7 +195,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/packages"
|
||||
android:inputType="numberDecimal"
|
||||
android:inputType="number"
|
||||
android:selectAllOnFocus="true" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
@ -219,12 +247,12 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/center_guideline"
|
||||
android:onClick="@{()->viewmodel.cancel()}"
|
||||
app:icon="@drawable/ic_clear_24dp"
|
||||
app:strokeColor="@color/colorPrimary"
|
||||
android:text="@string/no"/>
|
||||
android:text="@string/abort"/>
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/add_button"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryFull"
|
||||
@ -233,9 +261,9 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/center_guideline"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:icon="@drawable/ic_add_24dp"
|
||||
android:focusable="true"
|
||||
android:onClick="@{()->viewmodel.saveAndExit()}"
|
||||
android:text="@string/yes"/>
|
||||
android:text="@string/add"/>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<LinearLayout
|
||||
@ -138,13 +139,13 @@
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/ordini_a_aperti_main_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="92dp"
|
||||
android:background="@color/full_white"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"/>
|
||||
|
||||
@ -283,4 +283,11 @@
|
||||
<string name="add">Aggiungi</string>
|
||||
<string name="close_and_export">Chiudi ed esporta ordine</string>
|
||||
<string name="close_and_exit">Chiudi ordine</string>
|
||||
<string name="scan_art_barcode_to_add">Scansiona il codice di un articolo per aggiungerlo all\' ordine</string>
|
||||
<string name="edit_order">Modifica ordine</string>
|
||||
<string name="item_list">Lista articoli</string>
|
||||
<string name="insert_qty">Inserisci quantità</string>
|
||||
<string name="choose_action">Seleziona una azione</string>
|
||||
<string name="delete">Elimina</string>
|
||||
<string name="edit">Modifica</string>
|
||||
</resources>
|
||||
@ -288,4 +288,11 @@
|
||||
<string name="add">Add</string>
|
||||
<string name="close_and_export">Close and export</string>
|
||||
<string name="close_and_exit">Close order</string>
|
||||
<string name="scan_art_barcode_to_add">Scan an item barcode to add it to the order</string>
|
||||
<string name="edit_order">Edit order</string>
|
||||
<string name="item_list">Items list</string>
|
||||
<string name="insert_qty">Insert Quantity</string>
|
||||
<string name="choose_action">Choose action</string>
|
||||
<string name="delete">Delete</string>
|
||||
<string name="edit">Edit</string>
|
||||
</resources>
|
||||
|
||||
@ -156,4 +156,5 @@
|
||||
|
||||
|
||||
|
||||
|
||||
</resources>
|
||||
|
||||
@ -2,3 +2,4 @@ call build_azienda.bat _base
|
||||
call build_azienda.bat vgalimenti
|
||||
call build_azienda.bat ime
|
||||
call build_azienda.bat frudis
|
||||
call build_azienda.bat saporiveri_pv
|
||||
@ -7,6 +7,7 @@ public class CustomConfiguration extends BaseCustomConfiguration implements ICus
|
||||
|
||||
public CustomConfiguration() {
|
||||
configurations.put(Keys.MENU_CONFIGURATION, new MenuConfigurationSAPORIVERIPV());
|
||||
configurations.put(Keys.CUSTOM_DYNAMIC_VERSION_PATH,"_pv");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user