IDempiere/FullMeeting20121010

From WikiQSS
Revision as of 10:25, 10 October 2012 by CarlosRuiz (talk | contribs) (full)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Table of Contents | Full Meeting Minutes | Full Meeting 2012-10-10

CarlosRuiz: Good Morning
nmicoud: Bonjour
CarlosRuiz: I have an interesting pull request to review :) Fixed Assets from Edwin
nmicoud: have fun :d ; just a question : would you recommend to use AD_SysConfig to store a date ; which will be used in a callout ?
CarlosRuiz: yes - no problem with that - you must respect the format
nmicoud: ok, just wanted to have a confirmation, but did not see why it cant be done
earocker: Hello
nmicoud: btw when you have done with Edwin pull request, and if you still have time, you can also review tickets 451 and 448, patches have been prepared and attached in Jira
FJVR: hello all
CarlosRuiz: maybe would be worthy to add getTimestampValue to MSysConfig and enforce JDBC timestamp format
CarlosRuiz: Hi earocker, Hi FJVR
CarlosRuiz: ok nmicoud - noted - thanks for the reminder
nmicoud: will do this and commit it
earocker: i would like to know how can i make a new custom "CreateFrom" webform?
FJVR: Like creating a Material Receipt from a Purchase Order?
earocker: yeah, something like that, but for a new model class
CarlosRuiz: idempiere or adempiere?
earocker: idempiere
CarlosRuiz: let me check - I think we have an extension point for that .....
CarlosRuiz: well earocker
earocker: yeap?
CarlosRuiz: the easiest is to copy one of the existant createfrom class and implement for your table
CarlosRuiz: is not a straight task
earocker: so i must modify the WCreateFromWindow class??
CarlosRuiz: it needs like 3 classes - one controller and two views for swing and zk
earocker: sorry i mean WCreateFromFactory
CarlosRuiz: no, you must create a new class - you can use the WCreateFromWindow for some common things
CarlosRuiz: you can check for example WCreateFromInvoiceUI which extends CreateFromInvoice and uses WCreateFromWindow
CarlosRuiz: and you can register your extension using WCreateFromFactory.registerClass
earocker: i understand by registering my extension might work, but how can i register when the user click the CreateFrom button?
CarlosRuiz: the button must be called "CreateFrom" - just that
CarlosRuiz: in AbstractADWindowPanel there is special code to treat that button name
FJVR: nice
earocker: else if (col.equals("CreateFrom")) { ICreateFrom cf = WCreateFromFactory.create(curTab); if(cf != null) { if(cf.isInitOK()) { final WCreateFromWindow window = (WCreateFromWindow) cf.getWindow(); window.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED); window.addEventListener(DialogEvents.ON_MODAL_CLOSE, new EventListener<Event>() { @Override public void onEvent(Event event)
earocker: so in that part i should register my extension?
CarlosRuiz: no, I would register the extension in a ModelValidator - at initialize maybe
earocker: great!!!
earocker: i didn't see that
earocker: thank u very much
CarlosRuiz: you're welcome
FJVR: I started investigating as requested in IDEMPIERE-424 (replace compiere report enging with dynamic jasper) and it looks promising. Here you can fnd their API and the results of test using a software called 'Cobertura' : http://dynamicjasper.com/documentation-examples/api-docs/
earocker: i have one doubt more, what if i don't have a model validator, i mean, i have a new model class
FJVR: Though I could not tackle that problem, I still would like to participate in the process.
CarlosRuiz: you can have one model validator just for that
earocker: ok.. i see... thanks
red1: Talking about Edwin's Fixed Assets to incorporate, CarlosRuiz i wonder if we can start to do things the plugin way?
red1: I hope to document it out for other devs to began doing any plugins and publish themselves
CarlosRuiz: yes - that's the idea for payroll - and I need to port my LCO as plugin too
red1: i be doing the OB POS integration and also the new JavaPOS (if needed)
red1: .. as plugins..
red1: i will go thru the code on how Hengsin has made 2Pack handler in the MF
CarlosRuiz: MF?
red1: now i have a relevant question: "How do we handle small changes to code?"
red1: MF = Manifest File that handles the 2Pack automatically
red1: Hengsin told me about it some time ago, that it can detect if a 2Pack is in it and extracts it out to the DB
CarlosRuiz: ah, I see - it's working now - you just need to add a META-INF/2Pack.zip file
red1: but he has not figured out the removal of the plugin to reverse the 2Pack yet
CarlosRuiz: no, no reversal
red1: so this is clear for a clearly defined 2Pack module
red1: my question just now, ... previously we use Custom or Patches .. jars.. how do we do it now in iDempiere?
red1: (I have quite completed an Upgrade Assistant that will fetch the changes every month
red1: such as migration scripts and the user just need to run Ant
red1: i am docmenting and publishing it by tomorrow
CarlosRuiz: haven't tested still if fragment bundles can solve that - need to study that part
red1: Meanwhile, we are changing the code with diffs
red1: so can we just replace them with new versions?
CarlosRuiz: still haven't tested that
red1: i guess they are referred to as Revisions (and not official versions)
red1: i mean without changing versions, just what diffs that occured in the bitbucket
red1: Just tested the latest (last week) bitbucket revision, and it worked via the Kai Windows Installer
red1: again discovered the launcher jar is wrongly referred (for the adempiere-client.bat)
red1: should i raise a jira ticket for the right launcher full name?
CarlosRuiz: maybe it was solved on the .sh and not in the .bat ?
red1: wonder if i can submit a patch for that?
CarlosRuiz: ah - you mean for swing
red1: yes.. and since it happened before i found it right away
red1: i now have an installer that upgrades the changes in migration since June 12, 2012
red1: so this proves all things are working
red1: about your LCO or Payroll as plugin, i can help
red1: i mean you have to explain to me what to do and i can help along
red1: to then replicate across for the rest
red1: the document to explain the process is sponsored by Sysnova
CarlosRuiz: yes - I'm still in the process of learning too from Heng Sin :)
red1: haha.. a good hierarchy of trust we have here :)
red1: i am glad I am finally tagged to the right person to depend on
CarlosRuiz: nmicoud, - still there?
nmicoud: yep
CarlosRuiz: added a comment on IDEMPIERE-451
CarlosRuiz: " I think we have a bug (not yours) on all those views.
CarlosRuiz: I think views are using NULLIF when they must use COALESCE."
nmicoud: I have no idea
CarlosRuiz: ah no - maybe is right - we don't print the contact name if is the same as the bp name
CarlosRuiz: that must be the case - to avoid two lines with the same content
nmicoud: i'm not an Oracle Expert, just using it
CarlosRuiz: yes - just saw that reviewing the patch
CarlosRuiz: but it makes sense
nmicoud: When you say "as in some cases it will print a greeting without name.", when will that come ?
CarlosRuiz: we need to test
CarlosRuiz: but I think it can happen
CarlosRuiz: if you are printing the contact name
CarlosRuiz: contact has a greeting
CarlosRuiz: and the contact name is the same as the bp name
CarlosRuiz: it must be printing something like
CarlosRuiz: Mr. Carlos Ruiz
CarlosRuiz: Mr.
nmicoud: i've not tested this case : only a bp name different from contact name
nmicoud: CarlosRuiz: tested on order and... you're right ! if Joe Block has a contact named Joe Block, then if i choose to print contact, then i can see : Mr Joe Block \n Mr 123 Oak St...
CarlosRuiz: ah, thanks for confirming
CarlosRuiz: then I guess is better to check the nullif condition also to print the greeting
nmicoud: yes
nmicoud: will do that and upload patches
CarlosRuiz: thanks
red1: Carlos are you still thinking of making an early release?
CarlosRuiz: Heng Sin just released the master-detail work
CarlosRuiz: so, we're close
red1: i am calling my latest installer 0.9.d
red1: it is until SQL script 920_
nmicoud: hum... Carlos, I'm lost... trying to modify view :
nmicoud: Actually, it is : CASE WHEN bp.IsContactPrinted='Y' THEN bpcg.Greeting END AS BPContactGreeting,
nmicoud: How can i check NULLIF condition ?
CarlosRuiz: must be something like
CarlosRuiz: CASE WHEN bp.IsContactPrinted='Y' AND bp.Name<>bpc.Name THEN bpcg.Greeting END AS BPContactGreeting,
nmicoud: ok thanks, i'll try this
CarlosRuiz: similar case could be done instead of the NULLIF con bpname
nmicoud: it's working.
nmicoud: But... if we had a checkbox to say that we want (or not) print the contact name ; the nullif condition is obsolete ; i mean, you have contact name = bpartner name and checkbox ticked ; you won't have the contact name printed
CarlosRuiz: yes - but you could have bp with several contacts and one of them is the same as the bp name
nmicoud: correct
nmicoud: so, i will update views and upload them
CarlosRuiz: gr8
CarlosRuiz: thanks a lot for the meeting - need to move out for a while
nmicoud: bye bye