IRC logs of #tryton for Thursday, 2009-01-15

chat.freenode.net #tryton log beginning Thu Jan 15 00:00:02 CET 2009
pantherahas anyone tried to use the openerp webfrontend with tryton already?00:02
-!- udono(n=udono@dynamic-unidsl-85-197-23-76.westend.de) has joined #tryton00:41
vengfulsquirrelIs there any functionality to do record versioning in tryton?01:28
vengfulsquirrel*Or some code where that design-pattern is implemented01:30
X0d_of_N0dvengfulsquirrel: for bom revisioning?02:08
vengfulsquirrelX0d_of_N0d: Yeah I'm just not sure how to go about doing that in a reliable way, wanted to look at an example.02:11
X0d_of_N0dhum...02:11
vengfulsquirrelI'm not sure how critical that feature is but I wanted to see if it was easy.  I'm kind of worried that the planning might get all f'ed up if the bom's are writable.02:13
X0d_of_N0dhum...02:13
X0d_of_N0dwell...02:13
X0d_of_N0dare you trying to impliment some testing code?02:13
vengfulsquirrelNo I implemented something yesterday but it wasn't related to production at all.  I'm still just planning but its starting to get a little more specific.02:15
X0d_of_N0dThere are a couple of ways I've seen revisions implimented...02:15
X0d_of_N0dthe first way is to just dump everything into one database and have a revision field. Each time a bom is changed you change the rev02:16
X0d_of_N0dWhen a work order is actually issued that is linked to a bom AND a rev, so once a bom is created it's essentially immutable02:17
X0d_of_N0dACTION thinks... hum... created it's immutable, that's repeditive huh...02:17
vengfulsquirrelYeah I was thinking something like that02:18
X0d_of_N0dtinyerp does it a different way02:19
vengfulsquirrelIs a work order essentially a request to produce some product ?02:19
X0d_of_N0dACTION looks through the code02:19
X0d_of_N0dI should have said production order02:19
vengfulsquirrelYeah well I was thinking Purchase Request,Purchase would parallel Production Requestion, Production Run.02:20
X0d_of_N0da work order is more along the lines of something that would be created for each stop in the route02:20
vengfulsquirrelHmm02:21
X0d_of_N0dsounds right02:21
vengfulsquirrelYeah so for a routing with 3 workcenters you'd have 3 work orders?02:22
X0d_of_N0dyeah, because if they were all essentially the same you'd just have one work order that said "move this to these three places"02:22
X0d_of_N0dhum... maybe02:23
vengfulsquirrelSo does a Production Request/Production Run sort of parallel a Route-Stop/Work Order but the first is super high level compared to the second one.02:24
vengfulsquirrelA production run would be scheduled by using the routing to send work orders to each workcenter all to which would satisfy a production request.02:25
X0d_of_N0dvengfulsquirrel: production request=make something, work order=do this step in the process02:25
X0d_of_N0dvengfulsquirrel: so yeah, as far as I know that seems right...02:25
X0d_of_N0dright02:25
vengfulsquirrelSo this approach works well will the two phase implementation for the most part but there are some glaring problems.02:25
X0d_of_N0dyeah?02:26
vengfulsquirrelA production schedule consists of a fixed-width periods, basic scheduling would use lead times on each bom to place production requests into each period based on some product demand.  That's pretty much MRP I.02:27
vengfulsquirrelThen production runs could be created to satisfy those production requests as each scheduling period comes up.02:28
X0d_of_N0dwell... workcenters can also have lead times and breakdown times02:28
vengfulsquirrelYeah yeah I'm ignoring routings and workcenters completely right now.02:28
X0d_of_N0dok02:28
vengfulsquirrelSo that is a complete basic system with no shop floor control and no capacity planning.02:29
vengfulsquirrelIt just allows people to do MRP I and assign inventory to production runs.02:29
X0d_of_N0dand apparently the inventory control isn't bad in tinyerp, so we may be able to reuse some of the code02:30
vengfulsquirrelNow if we stack floor control planning on that, one way is to just use the same rough planning and then schedule things on the shop floor based on the production requests assigned to each period.02:30
X0d_of_N0dIt's primarily that the bom structure SUCKS in tinyerp, so much so that it's not usable02:30
vengfulsquirrelYeah everytime I look at it .. I just don't get it.02:30
vengfulsquirrelI really have no idea how their system works.02:31
vengfulsquirrelBut setting lead times by BOM is pretty rough.02:31
vengfulsquirrelYou want to set the lead time at each workcenter possibly with setup/cleanup times as well.02:31
X0d_of_N0dexactly02:31
X0d_of_N0dit's much more accurate02:31
X0d_of_N0dbut sometimes when you order something there's a lead time there too...02:32
X0d_of_N0dwhich I think is actually covered in the products module02:32
vengfulsquirrelYeah that will be in the BOM as well02:32
vengfulsquirrelhmm I was thinking you'd have a procurement type: Produce, Purchase and a procuement lead time02:32
X0d_of_N0doh, one note that I've been thinking about with boms. Boms should always be linked to items02:33
vengfulsquirrelHow often do you have the option to do both ?02:33
vengfulsquirrelSorry so my point earlier was I was going to do two-level scheduling: A rough level to place production requests into periods and a low-level to schedule routings across the shop floor within each period.02:34
vengfulsquirrelI think that might not work very well for example if the capacity isn't there you have to start scheduling in the previuos period.02:34
vengfulsquirrelBut at the same time doing low-level scheduling for an entire year doesn't sound right either.02:35
vengfulsquirrelDoes that problem make sense?02:35
X0d_of_N0dscheduling is an issue that can be delt with after working out bom structure02:36
X0d_of_N0dThe way I see it the first step is to figure out how to store boms in the database02:37
X0d_of_N0dthen impliment that in tryton02:37
vengfulsquirrelOkay well I'm most concerned with the scheduling because until I see the clear path from phase one to phase two I can't start on phase one.02:38
vengfulsquirrelAnyways what do you mean linked to items?02:38
X0d_of_N0din tinyerp when you build a bom you add sub boms to it so the structure is all boms02:38
X0d_of_N0dbut this is very broken02:38
X0d_of_N0dto me the right thing to do would be to create a bom, then link that to an item,02:39
vengfulsquirrelYeah I don't think the use should connect the boms themselves.02:39
vengfulsquirrel*user02:39
vengfulsquirrelEvery product has one bom(and its revisions) which consists of a list of products.02:39
X0d_of_N0dthen when you add subassemblies you should add items that may or may not be linked to boms02:39
X0d_of_N0dwell users have to generate the boms initially...02:40
vengfulsquirrelYeah the single-level boms.02:40
X0d_of_N0dor configurable boms02:40
vengfulsquirrelI think we are saying the same thing, what do you mean by item?02:40
vengfulsquirrelProduct? Or something different?02:40
X0d_of_N0da product02:41
X0d_of_N0dyeah, just different terminology02:41
X0d_of_N0dproducts shouldn't need to have boms linked to them... e.g. when you order a part you don'02:41
X0d_of_N0ddon't need a bom for the part you order02:41
X0d_of_N0dbut that product/part/whatever can be on a bom02:41
-!- ikks(n=igor@190.12.153.202) has joined #tryton02:42
vengfulsquirrelYeah but the bom will be childless and the procurement method will be marked in the bom as Purchase.  Or that is what I was thinking.02:42
X0d_of_N0dwhy have a bom at all though?02:44
vengfulsquirrelWell the lead time needs to be stored somewhere.02:44
X0d_of_N0dit's one more thing to create and manage02:44
X0d_of_N0dlead times for an ordered product are stored in the product02:45
X0d_of_N0dACTION goes to look at the ui for a sec02:45
X0d_of_N0dhum... they were in tinyerp I thought...hum02:45
X0d_of_N0dwell lead times for ordered itmes should be stored in the same place as prices... they're generally per vendor02:47
vengfulsquirrelYeah ha god I was afraid of that.02:47
X0d_of_N0dyeah, sucks doesn't it02:47
vengfulsquirrelGood luck scheduling system.02:47
vengfulsquirrelI hope everyone has a main-frame or 50 p4s.02:47
X0d_of_N0dit's not complex, just a lot of work02:47
vengfulsquirrelYeah I guess that might be simpler, rather than entering 40000 lead times you just enter one for the supplier of those 40000 products.02:48
X0d_of_N0ddatabases are pretty fast and well structured queries take care of most of these problems02:48
vengfulsquirrelCan you specify a supplier for a product ?02:48
vengfulsquirrelLike a default supplier ?02:48
X0d_of_N0dit doesn't look like you can right now02:48
X0d_of_N0dwhich is something we need02:48
X0d_of_N0dlemme verify that though02:49
X0d_of_N0dyeah, looks like there isn't really any pricelist as far as I can see02:50
vengfulsquirrelHmm yeah there are a lot of ways to cut that too.02:51
vengfulsquirrelIf people need to split between purchase and production that's a whole-nother ball of wax too.02:52
X0d_of_N0d?02:52
X0d_of_N0dwell... for right now we could just store lead times in products next to price02:54
X0d_of_N0dwell... we should actually just ask cedk to add it or something02:54
X0d_of_N0dhum... no it should go in products but it only needs to be added for mrp calculations02:55
vengfulsquirrelYeah okay well I was going to try and send some proposal on the mailing list to get more feedback from everyone I haven't finished the proposal yet.02:56
vengfulsquirrelYeah okay well does the system just assume purchase if there is no BOM then /02:56
vengfulsquirrel*?02:56
X0d_of_N0dyeah02:56
X0d_of_N0dI don't see why not02:56
X0d_of_N0dif you produce it then you need a bom02:56
X0d_of_N0dwhen you check produce it should then have you create a bom for it02:57
X0d_of_N0dperhaps??02:57
vengfulsquirrelWell if they want to split between production and purchase due to capacity of production and cost of purchase... that seems like a super edge case though.02:57
vengfulsquirrelSo initially I'll buy that logic, no bom==purchase.02:58
X0d_of_N0dok02:58
vengfulsquirrelOkay so for configurable boms I was thinking these are more for defining what needs to be produced in a work-to-order fulfillment process.  Is that correct?02:59
vengfulsquirrel*versus a work-to-stock02:59
X0d_of_N0dyeah, generally03:00
vengfulsquirrelDoes your company do that?03:01
X0d_of_N0dwell... we do that, but there are cases where that might not be the case03:01
X0d_of_N0dconfigurable boms really allow you to merge multiple boms that are similar except for some set of configurable parts03:03
vengfulsquirrelWell it seems like they would only be used when specifying a production run to fulfull a production request.03:03
vengfulsquirrelI was thinking configurable boms could have an additional field on each line called slot number that would just defined the products that could fulfull that slot, ie. substitutes.03:03
X0d_of_N0dfor most people's uses they're for configuration during ordering...03:03
X0d_of_N0dConfigurable boms could also be for quantity...03:04
X0d_of_N0da configurable bom on a computer could have the choice of one stick of ram or two03:04
vengfulsquirrelRight so you'd say Chair: 4 Legs, 1 Seat, Slot3:(1 ABC Back, 2 ABC Backs, ACME Back)03:04
X0d_of_N0done way I've seen configurable boms structured is just the same as a normal bom but instead of the list of items being the items used, only one gets used03:05
X0d_of_N0dand the bom type is set to configurable03:06
vengfulsquirrelYeah that kind of conflicts with making boms be lists of products becaues then we'd need to create virtual products... that had configurable boms.03:07
X0d_of_N0dexactly03:07
X0d_of_N0dwhich is actually pretty common03:08
X0d_of_N0da subassembly shared between two products would be a phantom bom, that is, it's not really a product that can be sold or stocked but it's used in both so it becomes a psudo item03:08
X0d_of_N0dit gets a part number03:08
X0d_of_N0djust so it can be put on multiple boms03:08
X0d_of_N0da bom would then be a list of products including pseudo products that are used to hold configurable boms03:09
vengfulsquirrelYeah okay hmm, that might kind of pollute the product system though.03:09
X0d_of_N0dhum03:10
X0d_of_N0dproducts should be anything with a part number, and boms should have a part number03:10
X0d_of_N0dso.... they should kind of be there anyway03:10
X0d_of_N0dwe might be able to filter them out though03:11
X0d_of_N0dor something.....03:11
X0d_of_N0dbut then again, I don't know that it matters really.....03:11
X0d_of_N0dhaving extra items in products..well... so what?03:12
vengfulsquirrelWell I'm not sure of the repercussions I'd have to look into it.03:13
X0d_of_N0dACTION thinks about it03:13
X0d_of_N0dhonestly neither am I03:13
X0d_of_N0dit's something to think about03:13
X0d_of_N0dThe only thing I can think about is that it increases the number of things in the database, but that doesn't really seem like that big of a deal03:14
vengfulsquirrelI didn't think that phantom bom stuff got used that much, it makes everything so much more complicated.03:14
X0d_of_N0dphantom boms are hugely important in manufacturing and are in any worth-while mrp package03:15
X0d_of_N0dwithout them it would be impossible to manage a large number of configurable products03:15
X0d_of_N0dBut I don't know that it makes things that much more complicated03:16
X0d_of_N0dWell I've got to go, but we need to keep thinking about this03:16
vengfulsquirrelThe planning, you'd have to put the estimating percentages on each product in the phantom bom.03:17
vengfulsquirrelSo then you could get your resources setup to manufacture the product at the top of the exploded bom tree that includes the phantom bom.03:17
vengfulsquirrelBut anyways yeah I need to ask you more questions so maybe if you are on tomorrow we can talk about some other stuff.03:18
X0d_of_N0dI'll be in earlier than I was today03:18
X0d_of_N0dI'll talk to you then...03:18
X0d_of_N0dlater man03:18
vengfulsquirrelsounds good, ttyl03:18
-!- yangoon(n=mathiasb@p549F51B4.dip.t-dialin.net) has joined #tryton03:22
CIA-10tryton: Bertrand Chenal <bch@b2ck.com> default * 205:560652fb0ee4 purchase/purchase.py: Use new keyword for products_by_location03:43
CIA-10tryton: Bertrand Chenal <bch@b2ck.com> default * 206:1afca3104b9e purchase/: merge03:43
CIA-10tryton: Bertrand Chenal <bch@b2ck.com> default * 424:8db68562ee27 stock/product.py: Improved products_by_location docstring03:44
CIA-10tryton: Bertrand Chenal <bch@b2ck.com> default * 425:31dfb78b63a1 stock/: merge03:44
CIA-10tryton: Bertrand Chenal <bch@b2ck.com> default * 426:f3105d54fb32 stock/ (CHANGELOG product.py): Added stock_skip_warehouse keyword on products_by_location03:44
CIA-10tryton: Bertrand Chenal <bch@b2ck.com> default * 427:0966ede58f41 stock/: merge03:44
-!- yangoon(n=mathiasb@p549F4C70.dip.t-dialin.net) has joined #tryton05:20
-!- Timitos(n=Timitos@88.217.184.172) has joined #tryton07:04
-!- Gedd(n=ged@77.109.113.94) has joined #tryton07:47
-!- paola(n=paola@host-84-223-76-195.cust-adsl.tiscali.it) has joined #tryton07:51
CIA-10tryton: Timitos roundup * #744/AttributeError: TranslateFactory instance has no attribute 'ugettext': Version 0.5.107:53
-!- carlos(n=carlos@89.7.24.44) has joined #tryton09:08
-!- cristi_an(i=5978d3ce@gateway/web/ajax/mibbit.com/x-5d5edbe3df9fdcae) has joined #tryton09:49
cristi_ancarlos: thx for your answer on wiki but is till not understood fully09:55
cristi_an:(09:55
carloswhat's what you don't understand?09:55
cristi_anids in the docs are describe as a list of integers09:55
carlosthe python code or the logic behind that code in Tryton?09:55
cristi_an[1,2,3,4,5,6,7,8,9]09:55
cristi_anthis is what ids may be right ?09:56
carlosright09:56
carlosin that code, you get ids == 109:56
carlosso it converts it to ids == [1]09:56
cristi_an1?09:56
cristi_anwhy ?09:56
carlosjust an example09:56
carlosany number09:56
cristi_anbut why i do not get a list ?09:56
carloscould you show me where ids is set the first time?09:57
cristi_anjust a sec09:57
carlossure09:57
cristi_ani have to restart in linux09:57
cristi_anbrb thx09:57
carlosok09:58
-!- Gedd(n=ged@ip-80-236-225-36.dsl.scarlet.be) has joined #tryton10:00
-!- cristi_an(n=cristi@89.120.211.206) has joined #tryton10:03
cristi_ancarlos: http://paste.pocoo.org/show/99747/10:06
carloscristi_an: without looking too deep, from there, I see that the write method allows you to give either a list of ids10:07
carlosor a single integer10:07
carlosand it will 'fix' its type to the internal requirement10:08
cristi_anright since this si python10:08
carlosso you don't need to do things like [2] or [1]10:08
cristi_anso you can pass anything to ids10:08
carlosright10:08
cristi_anbut why is that done like this10:08
cristi_anwhy thoe code do not convert this int to [int] before do the call10:09
cristi_anit would not been more clean10:09
carloswell, that's a design decision that I cannot answer, given that I didn't design it10:09
carlosyou will need to wait for cedk and others to answer that10:10
cristi_anjust asking since i am almost 0 in python but from programming point of view this is custom to python ?10:10
cristi_ancarlos: http://groups.google.com/group/tryton/browse_thread/thread/baa8a979f3c38a1d10:11
cristi_anon 1 or 2 do you have any response for me:)10:11
cristi_an?10:11
carloscristi_an: well, given that python gives you such flexibility in type checking, that's something that may be useful in some situations, yes10:14
carlosabout 1. It depends on the editor you use10:14
carlosI know vim has a 'ctags' module can may help you to do such lookups. Emacs has something similar, but I don't know it's name and I guess eclipse may have something similar too10:15
carlosyou also have the grep command line tool ;-)10:15
cristi_anellipse rules in java10:16
cristi_aneclipse10:16
-!- nicoe(n=nicoe@ip-80-236-225-36.dsl.scarlet.be) has joined #tryton10:16
carlosabout 2. the printing is done with buffers, so it's not a good way of doing debug tasks because it's not printed in sync with the code being executed10:17
carloscristi_an: do you know the python debugger?10:17
cristi_anno :(10:17
carlossubstitute your print with this line:10:17
carlosimport pdb; pdb.set_trace()10:17
carlosthat will give you a python shell in the point where you want to check something10:17
carlosso you will be able to check the internal status of the variables at that point10:17
cristi_anand i can just add10:17
cristi_anprint xxx10:18
cristi_an?10:18
cristi_anthis is like a bbreakpoint10:18
carloswhen you are done, just execute 'c' and the program will continue10:18
carlosright, is a kind of breakpoint, but fixed in the source code10:18
cristi_annice10:18
cristi_anthx a lot10:18
carlosas I said, the print xxx is not a sync command so it's going to be difficult to use it without adding some extra code to flush the output buffer10:19
carlosthe python debugger is quite simple to use10:19
carlosso is better if you get used to that instead of prints ;-)10:19
cristi_anoki but when the shell is avalable when the that poin is reached10:20
cristi_anthen how can i see the values for vartaibles i am interested in ?10:20
cristi_annot with print in shell ?10:20
carlosyou don't really need to do a print, however, it will work, yes10:25
carlosI didn't understand you :-P10:25
carlosyou could just do:10:25
carlos>>> variable10:26
carlosand you will get the value10:26
cristi_an:) gr810:28
cristi_ancarlos: one more thing10:51
cristi_anhttp://paste.pocoo.org/show/99753/10:51
cristi_ani added this10:51
cristi_ani start server ,start client,reinstall party10:51
cristi_anbut when i save address i expect write to be called and to get that shell10:51
cristi_anbut no :(10:51
carloscristi_an: you forgot the 'import pdb'10:53
carlosimport pdb; pdb.set_trace()10:53
cristi_animport is up10:54
cristi_anin the file10:54
carlosok10:54
carlosthen, that code is not being executed10:54
cristi_anotherwise the server had not started10:54
cristi_anhmmm10:54
carloscristi_an: it would start10:54
carlosif the code is not executed on start up10:54
cristi_ani have to w8 cedk10:54
cristi_ansince write is callewd on save10:54
cristi_an????10:55
carlospython is dynamic, so it may have bugs like missing imports and you will not notice it until the code path is executed10:55
cristi_anhttp://paste.pocoo.org/show/99755/10:56
cristi_ancedk and bechamel had a party tonight after radio since they are still sleeping :)10:57
carloscristi_an: the code is ok, but as I said, if you don't get a python 'shell', it's because the write method is not being called10:58
carloscristi_an: btw, you must execute the server from the console directly so the standard output and input are attached to that terminal10:58
cristi_anstrange sine it has to be called...that is save10:59
cristi_anconsole10:59
cristi_anso no doulbe click ?10:59
cristi_an./trytond.py10:59
cristi_anis better ?10:59
carlosright, that one11:01
carlosif you do double click, you don't have a way to get the shell11:01
cristi_ani did not know that11:03
cristi_an:)11:03
carlos;-)11:04
carlosdo you get it now?11:04
cristi_anno :((11:06
cristi_anmaybe is not called11:07
cristi_anthat method11:07
cristi_ani have to w8 cedk11:07
cristi_anback to win11:07
-!- cristi_an(i=5978d3ce@gateway/web/ajax/mibbit.com/x-2f92450fc50be9a6) has joined #tryton11:16
cristi_anwoder why since i started the server with ./11:18
-!- cedk(n=ced@gentoo/developer/cedk) has joined #tryton11:29
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 32:89ca19176ceb google_maps/__tryton__.py: Add fr_FR in __tryton__.py11:34
cristi_ancedk: write method in address.py11:41
cristi_anis called each time when i save an address ?11:41
cristi_anthx11:48
cedkcristi_an: when you modify11:48
cedkcristi_an: there is a create function also11:48
cristi_anaha i will write on group11:49
cristi_ani saw you answered...but i have more questions related to this11:49
cristi_ancedk:11:49
cristi_anbetter ask there...answer wehn you can11:49
cedkcristi_an: you can ask on the mailling list to continue the discussion11:51
udonohi all11:54
udonocedk: did I need openoffice.interact in any case for printing pdf documents?11:55
udonocedk: and is a openoffice headless server needed serversite?11:55
cedkudono: if you want that the server generate the pdf11:55
udonocedk: If I like the client to generate the pdf automatically, is this possible?11:56
udonocedk: via the way trytond - tryton - openoffice - export (automatically) PDF11:56
cedkudono: I think you can run openoffice in command line to do that, but not sure11:57
udonocedk: ok, thanks, was just irritated11:57
cedkudono: or you can send it directly to the printer11:57
udonook, pdf printer is a way11:58
Timitoscedk: to make the question of udono more clear. is tryton able to create PDF by default?11:58
cedkTimitos: no11:58
Timitoscedk: ok. thx11:58
cristi_ancedk: i put my questions there (i will do there if the are longer from now on)12:04
-!- carlos(n=carlos@89.7.24.44) has joined #tryton12:10
-!- bechamel(n=user@85.201.86.139) has joined #tryton12:31
CIA-10tryton: ced roundup * #744/AttributeError: TranslateFactory instance has no attribute 'ugettext': Are you sure? I don't have the same line for genshi/filters/i18n.py 18113:20
-!- cristi_an(n=cristi@89.120.211.206) has joined #tryton14:01
cristi_ancedk: i noticed a very nice feature ...when an object is saved it puts in vals only the filed that are modifed14:17
cristi_ancedk: is this done with cache help ?14:18
cristi_anand you compare before saving the object ?14:18
cedkcristi_an: it is the gtk client that knows what has been changed by the user14:20
cristi_anand from the client you get only the changed data14:21
cristi_ani got it thx14:21
cristi_ansmart client :)14:21
cristi_anis this possible from a web application as well ?14:21
cristi_anweb client (browser)14:22
cedkcristi_an: perhaps14:23
cristi_ancedk: bechamel http://paste.pocoo.org/show/99781/14:37
cristi_anis necesarry to do the  if isinstance(ids, (int, long)):14:37
cristi_ansince when you update an address14:38
cristi_anyou may set obly on party to it14:38
cristi_anand you may save that only one address14:38
cristi_anso if party is present in vals is clear you;ll have one id14:40
cristi_anplz correct me where i am wrong14:40
cristi_an?14:51
-!- ikks(n=igor@201.244.188.98) has joined #tryton15:13
-!- juanfer(n=juanfer@201.244.188.98) has joined #tryton16:25
-!- Timitos(n=Timitos@88.217.184.172) has joined #tryton16:29
-!- cristi_an(i=5978d3ce@gateway/web/ajax/mibbit.com/x-b56d5fd65393e981) has joined #tryton16:34
-!- carlos(n=carlos@230.Red-80-39-129.dynamicIP.rima-tde.net) has joined #tryton16:54
carlosikks: Hi16:55
ikksHI Carlos, I haven't been able to apply the fixes you commented :(16:59
carlosikks: don't worry, I'm not in a hurry16:59
carlosand when I have time to do a longer review, I will provide with a branch with all the comments17:00
carlosikks: I would like with you about terminology. I wonder whether you translated 'Income statement' as 'Cuenta de ingresos' because that's how it's named in your country or you just did a direct translation17:01
carlosIn Spain, it should be named: "Cuenta de Pérdidas y Ganancias"17:01
ikksmhh, aquí tenemos dos cuentas distintas enumeradas17:02
carlosso I'm just trying to detect whether that's a case when it's differently translated in different Spanish countries17:02
carlosor not17:02
ikkssorry, i saw spanish17:02
carlosikks: :-P17:02
ikkswe have to main accounts17:02
ikksIngresos and Egresos17:02
ikkslabeled 4 and 517:02
ikksAnd we have an inform17:02
carlosEgresos?17:02
ikkscalled pérdidas y ganancias17:03
carlosso it's the same as in Spain17:03
ikksegresos means all that takes money out from the company17:03
ikksmaybe I haven't understand properly the word "statement"17:03
carlosas far as I know, Income statement should be translated then as 'Perdidas y ganancias'17:03
carlosikks: well, I detected that mapping from an accounting glossary17:04
ikksIn spanish this portion: Es más bien como un informe?17:04
carlosikks: yeah17:04
ikksPyG?17:04
carlosikks: I think so, yes17:04
carlosikks: http://www.economicas-online.com/glosarios/ingles.htm#I17:04
ikksok, I see this is an error on the whole translation then...17:04
carlosikks: that's a glossary that helps me a bit to map from the English terminology to the Spanish one17:05
ikksMaybe we have to add on the doc references on the translation decision strings17:05
carlosYeah, a Tryton glossary/terminology would be a good idea17:06
ikksReally nice, I guess that the reference of the translation on a wiki page would help us sync17:06
ikksDo you have write access on the googlegroup wiki?17:06
carlosif we use translations that differ from the 'official' terminology in each country is going to be difficult to use Tryton17:06
carlosikks: yes17:06
ikksCan you help me with this? at the moment I'm focused on something else :(17:07
carlossure17:07
carlosI will start with the terms I think we should change as I continue with my chart of accounts creation17:08
carloswell, and also the ones I see as valid ;-)17:08
carlosikks: btw, I got my company added to the tryton's services page. Could you update the Spanish translation? (I will send you the translation so you only need to approve / commit it)17:10
ikkscool17:15
-!- cristi_an(n=cristi@89.120.211.206) has joined #tryton17:17
-!- carlos(n=carlos@24.Red-79-145-99.dynamicIP.rima-tde.net) has joined #tryton17:32
-!- ikks(n=igor@201.244.188.98) has joined #tryton17:57
-!- enlightx(n=enlightx@host-84-220-86-72.cust-adsl.tiscali.it) has joined #tryton18:28
-!- evernichon(n=evernich@AToulouse-256-1-7-107.w90-38.abo.wanadoo.fr) has joined #tryton18:28
-!- paola(n=paola@host-84-223-76-195.cust-adsl.tiscali.it) has joined #tryton18:59
CIA-10tryton: Mathias Behrle <mathiasb@behrle.dyndns.org> default * 254:b2fc8d801cf2 account_invoice/ (invoice.odt invoice.py):19:07
CIA-10tryton: Change field description from char to text19:07
CIA-10tryton: Better handling of linebreaks and multiline input in invoice lines for issue 73819:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 255:6b15be325174 account_invoice/: merge19:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 39:1f3d8bf9bcfe analytic_purchase/purchase.xml: Update for new purchase line form19:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 31:2679c2b781d2 analytic_sale/sale.xml: Update for new sale line form19:07
CIA-10tryton: Mathias Behrle <mathiasb@behrle.dyndns.org> default * 207:fb81b04712e8 purchase/ (purchase.odt purchase.py):19:07
CIA-10tryton: Change field description from char to text19:07
CIA-10tryton: Better handling of linebreaks and multiline input in purchase lines for issue 73819:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 208:69185ff61aa4 purchase/purchase.py: merge19:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 209:bdad08ea6a24 purchase/purchase.xml: Add a notebook on purchase line form19:07
CIA-10tryton: Mathias Behrle <mathiasb@behrle.dyndns.org> default * 210:42dc5b7c16ce purchase/purchase.py: Add comments on purchase lines19:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 211:057ac8841740 purchase/COPYRIGHT: Update copyright19:07
CIA-10tryton: Mathias Behrle <mathiasb@behrle.dyndns.org> default * 102:0980f90b1ab3 sale/ (sale.odt sale.py):19:07
CIA-10tryton: Change field description from char to text19:07
CIA-10tryton: Better handling of linebreaks and multiline input in sale lines for issue 73819:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 103:a747ab442fb1 sale/: merge19:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 104:edcbde2f252f sale/sale.xml: Add notebook on sale line19:07
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 428:afc5db0a2fd6 stock/inventory.py: Fix guidelines19:07
CIA-10tryton: ced roundup * #738/RfC: Comments in sale, purchase, invoice lines: [resolved] Applied19:08
CIA-10tryton: C?dric Krier <ced@b2ck.com> default * 105:291bd2c0382c sale/COPYRIGHT: Update copyright19:12
-!- enlightx(n=enlightx@host-84-220-86-72.cust-adsl.tiscali.it) has joined #tryton19:29
-!- vengfulsquirrel(n=ian@c-71-202-125-182.hsd1.ca.comcast.net) has joined #tryton19:41
cristi_ancedk: i created a party added to that some addresses saved.then i open the party again and updated the addresses by changing some attributes in them19:43
cristi_anin log i noticed the that each address was saved (updated) separatelly by clling write on each19:43
cristi_ansince there is ids as list why it was not possible to do this in one call ?19:43
cristi_ana single write with ids[]19:44
cedkcristi_an: because the values to write are different for each id19:45
cristi_anso ids as a list in write method is just ...like this....it would have been ok to have there ids and int parameter then19:45
cedkcristi_an: no because sometimes when you are programming, you need to write the same value on many ids, so here you can19:46
cristi_ancedk: can you give me a use case when this is done ?19:47
cedkcristi_an: in trytond/modules/account/period.py line 23419:48
cristi_anthx19:48
cristi_annice i got it  now19:50
-!- carlos(n=carlos@89.7.24.44) has joined #tryton19:51
cristi_anwhat is the purpose of   sequence = fields.Integer("Sequence")20:15
cristi_ani saw this in many places ?20:15
bechamelit's useful when you want to let the customer to order records20:18
bechamelthe field will contain the intergers for custom order20:18
vengfulsquirrelX0d_of_N0d: Hey hey20:19
cristi_anbechamel: and how can i let the customer order records ?20:21
bechamelcristi_an: the gtk client handle it for you20:22
bechamelcristi_an: if you do drag and drops between invoice lines the value of sequence will be updated accordingly20:22
bechamelcristi_an: but if the field is available in the form view the user can change it by hand20:23
bechamelafk20:24
cristi_anbechamel: but on address20:25
cristi_ani do not see this sequence files so i can cahnge it by habd20:25
cristi_anfiles = field20:25
cristi_ani saw this20:27
cristi_anin party20:27
cristi_anwhen i arange by hand addressed20:27
cristi_an /addressed/addresses20:28
cristi_anthe order on the seq is changes in the db20:28
cristi_anbut why not on the main address form ?20:28
cristi_anthere is not the same form used ?20:28
cristi_anthat is not a sortable table from party (the addres table widget)20:29
cristi_anthe main form of addresses  instead hold a sortable table20:30
cristi_anthx...20:33
cristi_anbechamel: i asked this before but i forgot20:57
cristi_anhow can i do override and update20:57
cristi_anwith hg ?20:57
bechamelcristi_an: hg rollabck maybe21:09
bechamelfor the sequence on adress it's not on the form because it's easier to use drag and drop21:10
-!- enlightx(n=enlightx@host-84-220-86-72.cust-adsl.tiscali.it) has joined #tryton21:12
cristi_annot hg revert -all21:12
cristi_an?21:12
bechamelyes revertis right, rollback is to remove the last commit21:14
cristi_anbut is this specified somewhere  that is not on the form and is used for drag and drop ?21:14
cristi_anin the xml ?21:15
bechamelcristi_an: actualy .. i don't know :), maybe in fields_view_get in the orm21:16
udonohey guys, I am away for a week, see you on monday in a week! Bye21:19
bechamelcristi_an: black magic, maybe21:19
bechameludono: bye21:19
cristi_anudono: have a nice holiday21:19
cristi_anbechamel: there is not black magic :) only kids fools belive in that :)21:20
-!- udono(n=udono@dynamic-unidsl-85-197-23-76.westend.de) has left #tryton21:23
bechamelcristi_an: i think the black magic is line 2163 in orm.py21:28
cristi_ani feel much better21:31
cristi_an:)21:31
bechamelcristi_an: great21:32
cedkcristi_an, bechamel: it is the attribute sequence on the tag tree21:43
cristi_ani saw that 5 min before21:46
cristi_anThe name of the files used for sorting....21:46
cristi_anField21:46
cristi_anXML description tree21:46
bechamelcedk: right, i had a look in address.xml, but i forgot to check party.xml so i didn't see it21:47
cristi_anin adress.xml there is the table sorting21:48
cristi_anby default21:48
cristi_an__init__.py is called each time in import from that modules is used ?21:52
cristi_anas first commands21:52
bechamelcristi_an: yes this is python specific21:53
cristi_ani read21:54
cristi_anhttp://www.tryton.org/doc/branches/1.0/trytond/doc/modules.html#module-structure21:54
cristi_anthx i found docs21:55
cristi_ansetup.py is needed ?21:55
bechamelcristi_an: it's only for packaging21:56
cristi_anwhich is used for ?21:57
cristi_an:)21:57
cristi_andebian etc ?21:57
cristi_anstuff like this...21:57
bechamelcristi_an: easy_install21:57
bechamelcristi_an: try "python setup.py"21:58
cristi_anusage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]21:59
cristi_aninstall the packege like vat is isntalled ?22:00
cristi_angood night thx....22:02
bechamelyes this allow to build and install as any python module, and because modules are availabe on http://pypi.python.org/pypi, you can also do "easy_install tryton_party" ( and this will fetch all other needed packages/modules)22:02
bechameldamn22:02
vengfulsquirrelha yeha that was a long one22:02
vengfulsquirrelmaybe he read it in that last second22:03
vengfulsquirrel41<-->4222:03
bechamelvengfulsquirrel: I hope he checks the logs22:03
-!- cristi_an(n=cristi@89.120.211.206) has joined #tryton22:39
cristi_ani created a custom simple model22:40
cristi_anhow can i install that22:40
cristi_an?22:40
cristi_anto se in the client22:40
vengfulsquirrelA db model?22:41
cristi_anwell a custom model ,the class the xml,the __init__.py and tryton.py22:42
cristi_anjust some simple fields to see how db is created how the client handels this22:42
cristi_andepends of ir and res22:43
bechamelcristi_an: is your new directory in trytond/modules ?22:44
cristi_anyes22:44
bechamelcristi_an: so if everything is ok just restart the server and your module will appear in the module list22:45
bechamelcristi_an: or with the command line: "trytond.py -d my_db -i my_module"22:45
X0d_of_N0dvengfulsquirrel: hey, I ended up coming in a bit later today than I expected23:14
vengfulsquirrelX0d_of_N0d: yeah that's fine I haven't started my second pot of coffee yet23:15
vengfulsquirrelSo I have a lot of questions because the books I have and the Internet haven't been great resources for all the BOM types.23:16
X0d_of_N0dvengfulsquirrel: ok, cool23:17
vengfulsquirrelSo if you have time now or later to go over it that would be great.23:17
X0d_of_N0dvengfulsquirrel: yeah23:17
X0d_of_N0dvengfulsquirrel: I've got some time23:18
vengfulsquirrelGreat, so I think I've finally come to terms with Phantom boms although they still seem a little awkward.23:18
X0d_of_N0dok23:18
vengfulsquirrelSo I thought modular boms were just multi-level boms but I guess they are more than that but I can't find any definitive definition for them.23:20
X0d_of_N0dI think that's more or less accurate except that, as far as I understand, "modular" means that subassemblies can be shared between boms23:21
X0d_of_N0dand can be changed and what-not23:21
vengfulsquirrelCan you explain subassembly because you don't mean "Product" right ?23:22
X0d_of_N0dright23:22
X0d_of_N0dlets say you're building a bike23:22
X0d_of_N0dthe bike is the product/assembly23:22
X0d_of_N0dbut you also build the wheels, then attach them to the bike23:23
X0d_of_N0dthe wheels would be a subassembly23:23
X0d_of_N0da subassembly is just something that's built to be a part for something else23:23
vengfulsquirrelYeah how is that different from a product?  You could sell the wheels too right?23:24
X0d_of_N0dright, but there are subassemblies you can't sell....23:24
X0d_of_N0dif you build hard drives your platters would be a subassembly, but you could never sell those23:25
vengfulsquirrelYeah that's fine, would they be stocked though or for just communication between workcenters?23:25
X0d_of_N0dbut subassemblies usually get part numbers, so for our purposes there really isn't much of a difference between a product and an assembly23:26
X0d_of_N0dif a subassembly is immediately used and not typically stocked then it would be a phantom bom and it would more be used just in case something happened and it needed to be stocked23:27
vengfulsquirrelhmm23:27
X0d_of_N0dbut generally, yeah, a phantom bom shouldn't generate a work order of any type23:27
vengfulsquirrelYeah I figured I would assume a phantom bom would _never_ be stocked.23:27
vengfulsquirrelI made a diagram23:28
X0d_of_N0dsome phantom boms aren't ever stocked because they aren't actual assemblies23:28
vengfulsquirrelhold on23:28
X0d_of_N0dok23:28
vengfulsquirrelhttp://www.laspilitas.com/s/images/bom-christmas-tree.png23:29
vengfulsquirrelX0d_of_N0d: I should have sent that first.23:30
X0d_of_N0dACTION looks at it23:31
vengfulsquirrelHmm I guess I don't actually have a sub-assembly on there, but I think if its stocked we can just use the current product model for it.23:32
X0d_of_N0dright, a bom should just be recursive23:32
X0d_of_N0dwhy is there a difference between phantom assembly and product kit?23:34
X0d_of_N0da phantom could be a kit23:34
vengfulsquirrelA product kit is used for planning purposes23:34
vengfulsquirrelA phantom is ignored during planning23:35
vengfulsquirrel*product demand planning23:35
vengfulsquirrelI think a product kit is also just for convenience and bom maintanence.23:35
X0d_of_N0dwell...hum23:35
vengfulsquirrelLike its not actually assembled, like a Bag of Parts.23:36
X0d_of_N0dright, but you still need that bag of parts23:36
vengfulsquirrelI didn't make it up and I'd love to axe it and just make people make a real sub assembly out of it.23:37
X0d_of_N0da phantom shouldn't generate a work order23:37
X0d_of_N0dhum...23:38
vengfulsquirrelYeah that's a little grey for me, a phantom assembly is created on the line on the way to creating the final product.23:39
X0d_of_N0dusually... it's also used in some other places...23:39
vengfulsquirrelWhat other places?23:39
X0d_of_N0dwe have a shipping phantom bom that includes all the materials needed to pack and ship our machiens23:40
X0d_of_N0dthe finished product could never be stocked because it's a box built around the machine23:40
vengfulsquirrelSo what is stocked?23:40
X0d_of_N0dand it doesn't need a work order because the shipping order takes care of that23:40
X0d_of_N0dwood, nails, etc23:41
X0d_of_N0dparts to build it23:41
vengfulsquirrelSo the shipping order is an order to do the final assembly of the machine and the shipping materials?23:41
X0d_of_N0dno, to assemble the shiping materials around the finished machine23:42
X0d_of_N0dbut we do need to make sure more wood and nails are ordered if we are running low23:43
X0d_of_N0dso it does need to be taken into account when planning purchase orders23:43
X0d_of_N0dand there is also, of course, the "bag of parts" thing23:45
vengfulsquirrelYeah you could just do a demand estimate for the shipping materials as a final product and just ignore the packing process.  Are you saying you'd want your machine demand estimates to trigger shipping material demand estimates?23:46
X0d_of_N0dshipping materials would be a phantom bom inside the assembly, so any demand estimate for the assembly would automatically generate demand for the shipping materials23:47
vengfulsquirrelYeah I'll have to think about that, well, noted.23:52
X0d_of_N0dok23:52
vengfulsquirrelThat's like a reverse phantom bom.23:52
vengfulsquirrelIts in the bom but its not used in production at all BUT it needs to be planned for.23:52
vengfulsquirrelWhereas a phantom bom is only used during production and doesn't need to be purchased/planned for.23:53
vengfulsquirrelAnyways so onto configurable boms.23:53
X0d_of_N0dyeah23:54
X0d_of_N0dthe terminology in erp really sucks23:54
X0d_of_N0dimho23:54
X0d_of_N0dit's not clearly defined and it's pretty confusing23:54
X0d_of_N0dso yeah, on to configurable boms23:54
vengfulsquirrelSo some people talk about configurable boms like choosing red and blue whereas other people talk about choosing a 80MB hard drive versus a 60MB hard drive(my book is that old!).23:55
X0d_of_N0dlol, yeah I've got a book like that23:55
X0d_of_N0dit could also be choosing 50ft of cable vs 60ft23:56
X0d_of_N0dany time you have a choice it's configurable23:56
vengfulsquirrelyeah but the physical configuration makes sense to me and is in that bom i sent you under substitutues23:56
vengfulsquirrel*substitutes, although there needs to be a choose code or something like.. can sub m to n, can sub exactly m23:58
X0d_of_N0dthis is where I was saying it should just be a normal bom but instead of being a list of things you will put in it's a list of things you could put in23:59
vengfulsquirrelyeah okay that makes sense to me, is there any more complexity to that?23:59

Generated by irclog2html.py 2.11.0 by Marius Gedminas - find it at mg.pov.lt!