From: elgekko Date: Fri, 11 Aug 2023 06:33:11 +0000 (+0200) Subject: Bug fixes, settings UI extended X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=25219d3faaa3f340d44d7692edd9a82860944858;p=sly-crm.git Bug fixes, settings UI extended --- diff --git a/.idea/misc.xml b/.idea/misc.xml index b0e4237..388f741 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/.jpb/jpb-settings.xml b/.jpb/jpb-settings.xml new file mode 100644 index 0000000..26124d0 --- /dev/null +++ b/.jpb/jpb-settings.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TODO.txt b/TODO.txt index 2f96422..fdc04c5 100644 --- a/TODO.txt +++ b/TODO.txt @@ -57,22 +57,21 @@ * auth/ldap ldap:fds.in.useribm.hu:389,ldaps:fds.useribm.hu:636 *Lista rendezés a projek szerkesztőn belül --Projekt résztvevő társítás nem eredményez projekt validálást, mentés gomb inaktív marad --Projekt számla társítás vagy módosítás nem eredményez projekt validálást, mentés gomb inaktív marad --Modositott treasury mentésre kerül a projekt mentés gomb aktív lesz, de ha mégseme gombot nyomok akkor is megőrződnek a változtatások --Fájl feltöltes nem műkodik sehol +*Projekt résztvevő társítás nem eredményez projekt validálást, mentés gomb inaktív marad +*Projekt számla társítás vagy módosítás nem eredményez projekt validálást, mentés gomb inaktív marad +*Modositott treasury mentésre kerül a projekt mentés gomb aktív lesz, de ha mégseme gombot nyomok akkor is megőrződnek a változtatások +*Fájl feltöltes nem műkodik sehol autorizacio -nav +nav integracio szamla erkeztetes camunda: egy felasznalohoz jon be, projekthez lehessen csatolni, projektszanot ellenorizze - +- legyen felhasználó specifikus beállításokra lehetőség +- Táblázatok: oszlopszélesség állítható és rendezhető legyen (minden oszlopra) mencse el a felhasználó preferenciához. - Számla kiegyenlítés - Autentikáció: AD és helyi -- legyen felhasználó specifikus beállításokra lehetőség - - Táblázatok: oszlopszélesség állítható és rendezhető legyen (minden oszlopra) mencse el a felhasználó preferenciához. - droppable="head" draggable="head" https://zkfiddle.org/sample/4k499d/1-Reorder-Columns-in-Listbox#source-2 - Minden kívülről leszipkázható adat jöjjön módosítható legyen REST API-n: szla kiegyenlítés, bejövő/kimenő számlák, munkalap @@ -82,5 +81,27 @@ szamla erkeztetes camunda: egy felasznalohoz jon be, projekthez lehessen csatoln - Plugin: lehet egyedi testreszabási igény, de ennek valahogy el kell teljesen különülnie a "core" forráskódtól. Pl. javascript motort be lehetne építeni, a szkriptek pedig meghatározott pontokon lehetnének becsatolva a logikába. Számla részletezés volt a példa (10000EUR számla 3 részletben forintban, kérdés mennyi pl. az utsó számla összege); 10 custom mező, javascripttel futna a custom mezők módosítására. +treasury hozzáadása után (project mentés előtt) legyen árrés kalkuláció + +XXX 20230817 +--hosszútávon: cégnév v adószám alapján adatok letöltése publikus cégadatbázisból +--mindenhol lehessen törölni, legfejlebb a db szól +--project ID - párhuzamos generálás kezelése +--forintról visszaváltva pl. USD-re reset az áfá-n +-számla dátumok egyenlőek is lehetnek, a fizetési határidő a legnagyobb (tisztázni pontosan) +--munkalapnál csak az a projekt jelenjen meg amihez hozzá van rendelve, és a belépett felhasználó +-a ráfordítás nem veszi figyelembe a munka ráfordítást +-camunda beepitese: szamla erkeztetes, elszoszor szamlakep csatolas, majd approve + +-Schnellbach: NAV-tól letölteni a számlákat + számla iktatás funkció: lehúzzuk a nekünk kiállított számlát + pdf csatolás + kézzel projekthez (később találja ki, hogy automatikusan) + -queue: néhány kolléga éri + -jóváhagyás + + +-zkoss riporting!! + +call árpi 14! + diff --git a/lis-db/migrations/README b/lis-db/migrations/README index 8dcc3a6..154d66b 100644 --- a/lis-db/migrations/README +++ b/lis-db/migrations/README @@ -48,7 +48,7 @@ Enjoy. DOCKER -docker run -itd --name lis --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INSTANCE=db2admin -e DB2INST1_PASSWORD=password -e DBNAME=lis -e PERSISTENT_HOME=true -v /Docker:/database ibmcom/db2 +docker run -itd --name lis --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INSTANCE=db2admin -e DB2INST1_PASSWORD=password -e DBNAME=lis -e PERSISTENT_HOME=false -v /Docker:/database ibmcom/db2 docker logs -f lis docker exec -it lis bash docker stop lis @@ -56,3 +56,8 @@ docker remove lis MIGRATE migrate new create profile --idpattern=000 + + +Move data +---------- +https://community.ibm.com/community/user/datamanagement/discussion/db2-docker-persistent-volume \ No newline at end of file diff --git a/lis-ui/pom.xml b/lis-ui/pom.xml index 91ebb28..eaa4fb0 100644 --- a/lis-ui/pom.xml +++ b/lis-ui/pom.xml @@ -87,6 +87,16 @@ silvertail ${zk.version} + + org.zkoss.theme + breeze + ${zk.version} + + + org.zkoss.theme + iceblue_c + ${zk.version} + org.zkoss.theme sapphire diff --git a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectStatusDataModel.java b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectStatusDataModel.java index 0430ad9..cd38b81 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectStatusDataModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectStatusDataModel.java @@ -23,10 +23,6 @@ public class ProjectStatusDataModel extends CachedSpringDataModel ProjectStatusRepository projectStatusRepository; private boolean activeOnly; - public ProjectStatusDataModel() { - listAll(); - } - @Override public List getResultSet(int page, int pageSize, FieldComparator sortComparator) { List result; diff --git a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java index 3bc9694..2a881a7 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java @@ -79,11 +79,9 @@ public class ProjectsDataModel extends CachedSpringDataModel { } public Project createNew() { - String humanId = generateHumanId(); ProjectStatus projectStatus = projectStatusDataModel.getDefault(); return Project.builder() .projectStatus(projectStatus) - .humanId(humanId) .incomingInvoices(new HashSet<>()) .outgoingInvoices(new HashSet<>()) .treasuries(new HashSet<>()) @@ -91,7 +89,7 @@ public class ProjectsDataModel extends CachedSpringDataModel { .build(); } - private String generateHumanId() { + public String generateHumanId() { String yearSearch = String.format("%s-%%", Year.now().getValue()); Project lastInYear = projectRepository.findFirstByHumanIdLikeOrderByHumanIdDesc(yearSearch); int sortOrder = 0; diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java index 9896ecb..ad38e54 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java @@ -12,13 +12,14 @@ import lombok.Getter; import lombok.Setter; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; +import org.springframework.transaction.annotation.Transactional; import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.*; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zk.ui.util.Clients; -import org.zkoss.zul.Center; +import org.zkoss.zk.ui.util.Notification; import org.zkoss.zul.Panel; import org.zkoss.zul.Window; @@ -88,6 +89,7 @@ public class ProjectEditorModel extends EntityEditorModel { @Init public void init() { super.init(); + projectStatusDataModel.listActive(); } @AfterCompose @@ -140,10 +142,25 @@ public class ProjectEditorModel extends EntityEditorModel { associatesDataModel.listAll(); } + @Transactional + private void saveProject(Component notif) { + boolean notify = false; + if (Objects.isNull(getFormDocument().getId())) { + getFormDocument().setHumanId(projectsDataModel.generateHumanId()); + notify = true; + } + projectsDataModel.save(getFormDocument()); + + if (notify) { + String msg = String.format("Sikeres projekt létrehozás %s azonosítóval.", getFormDocument().getHumanId()); + Notification.show(msg, "info", notif, "after_start", 3000, true); + } + } + @Command - public void onEndEdit(@BindingParam("target") Window target, @BindingParam("save") boolean save) { + public void onEndEdit(@BindingParam("target") Window target, @BindingParam("save") boolean save, @BindingParam("notif") Component notif) { if (save && isSaveEnabled()) { - projectsDataModel.save(getFormDocument()); + saveProject(notif); if (isAssociatesChanged()) { projectAssociatesDataModel.updateAssociates(getFormDocument(), formAssociates); } @@ -277,14 +294,12 @@ public class ProjectEditorModel extends EntityEditorModel { } @Command - public void onOpenFormPanel(@BindingParam("parentPanel") Center parentPanel) { - log.info("Panel open/close"); + public void onOpenFormPanel(@BindingParam("parentPanel") Component parentPanel) { parentPanel.invalidate(); } @Command - public void onClickFormPanel(@BindingParam("parentPanel") Center parentPanel, @BindingParam("panel") Panel panel) { - log.info("Panel click"); + public void onClickFormPanel(@BindingParam("parentPanel") Component parentPanel, @BindingParam("panel") Panel panel) { panel.setOpen(!panel.isOpen()); parentPanel.invalidate(); } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java index c80c77c..6f657c0 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java @@ -3,6 +3,7 @@ package hu.user.lis.ui.editor; import hu.user.lis.db.Associate; import hu.user.lis.db.Project; import hu.user.lis.db.ServiceRecord; +import hu.user.lis.ui.auth.CurrentProfile; import hu.user.lis.ui.editor.common.EntityEditorModel; import lombok.Getter; import lombok.Setter; @@ -13,14 +14,20 @@ import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.*; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.UploadEvent; +import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zul.Messagebox; +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; import java.util.Objects; @Log4j2 @Getter @Setter public class ServiceRecordEditorModel extends EntityEditorModel { + @WireVariable + CurrentProfile currentProfile; @Init public void init() { @@ -29,6 +36,10 @@ public class ServiceRecordEditorModel extends EntityEditorModel { @AfterCompose public void onAfterCompose(@ContextParam(ContextType.VIEW) Component view) { + if (Objects.isNull(getFormDocument().getId())) { + getFormDocument().setAssociate(currentProfile.getAssociate()); + getFormDocument().setWorkDay(Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant())); + } getEntitySelectorRouter().setFormDocument(Associate.class, getFormDocument(), "associate"); getEntitySelectorRouter().setFormDocument(Project.class, getFormDocument(), "project"); } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java index 6309f80..e3a35fe 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java @@ -43,10 +43,13 @@ public class IndexViewModel implements EventListener { Constants.NAV_SERVICE_RECORDS, SERVICE_RECORDS_LIST, Constants.NAV_SETTINGS, SETTINGS_LIST ); + @WireVariable BuildProperties buildProperties; + @WireVariable SessionSettings sessionSettings; + @WireVariable EventBus eventBus; diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/SettingsViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/SettingsViewModel.java index 0f84d93..17bd88b 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/SettingsViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/SettingsViewModel.java @@ -8,10 +8,12 @@ import lombok.extern.log4j.Log4j2; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; +import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.select.annotation.VariableResolver; import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zkplus.spring.DelegatingVariableResolver; +import org.zkoss.zul.Panel; @Log4j2 @VariableResolver(DelegatingVariableResolver.class) @@ -19,7 +21,7 @@ public class SettingsViewModel extends AsyncBaseModel { @WireVariable @Getter ProjectStatusDataModel projectStatusDataModel; - + @Getter private ProjectStatus selectedProjectStatus; @@ -30,6 +32,17 @@ public class SettingsViewModel extends AsyncBaseModel { log.info("Initialized"); } + @Command + public void onOpenFormPanel(@BindingParam("parentPanel") Component parentPanel) { + parentPanel.invalidate(); + } + + @Command + public void onClickFormPanel(@BindingParam("parentPanel") Component parentPanel, @BindingParam("panel") Panel panel) { + panel.setOpen(!panel.isOpen()); + parentPanel.invalidate(); + } + @Command public void onMoveUp() { projectStatusDataModel.moveUp(selectedProjectStatus); diff --git a/lis-ui/src/main/resources/web/editor/associate-editor.zul b/lis-ui/src/main/resources/web/editor/associate-editor.zul index 49bbae4..76112ad 100644 --- a/lis-ui/src/main/resources/web/editor/associate-editor.zul +++ b/lis-ui/src/main/resources/web/editor/associate-editor.zul @@ -1,7 +1,7 @@ - @@ -17,7 +17,7 @@