You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(20) |
Aug
(21) |
Sep
(12) |
Oct
(2) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(3) |
Feb
(46) |
Mar
(65) |
Apr
(49) |
May
(33) |
Jun
(5) |
Jul
(79) |
Aug
(228) |
Sep
(347) |
Oct
(272) |
Nov
(270) |
Dec
(424) |
2005 |
Jan
(549) |
Feb
(232) |
Mar
(134) |
Apr
(103) |
May
(57) |
Jun
(74) |
Jul
(67) |
Aug
(45) |
Sep
(99) |
Oct
(187) |
Nov
(238) |
Dec
(127) |
2006 |
Jan
(81) |
Feb
(137) |
Mar
(46) |
Apr
(55) |
May
(62) |
Jun
(152) |
Jul
(137) |
Aug
(154) |
Sep
(176) |
Oct
(104) |
Nov
(65) |
Dec
(64) |
2007 |
Jan
(56) |
Feb
(303) |
Mar
(88) |
Apr
(80) |
May
(72) |
Jun
(20) |
Jul
(47) |
Aug
(28) |
Sep
(113) |
Oct
(49) |
Nov
(89) |
Dec
(24) |
2008 |
Jan
(24) |
Feb
(61) |
Mar
(43) |
Apr
(51) |
May
(12) |
Jun
(10) |
Jul
(49) |
Aug
(26) |
Sep
(7) |
Oct
(50) |
Nov
(19) |
Dec
(15) |
2009 |
Jan
(87) |
Feb
(144) |
Mar
(54) |
Apr
(72) |
May
(32) |
Jun
(23) |
Jul
(27) |
Aug
(90) |
Sep
(349) |
Oct
(174) |
Nov
(320) |
Dec
(110) |
2010 |
Jan
(162) |
Feb
(39) |
Mar
(80) |
Apr
(126) |
May
(45) |
Jun
(44) |
Jul
(75) |
Aug
(32) |
Sep
(100) |
Oct
(57) |
Nov
(49) |
Dec
(125) |
2011 |
Jan
(72) |
Feb
(41) |
Mar
(63) |
Apr
(18) |
May
(123) |
Jun
(100) |
Jul
(96) |
Aug
(84) |
Sep
(83) |
Oct
(39) |
Nov
(166) |
Dec
(103) |
2012 |
Jan
(158) |
Feb
(148) |
Mar
(77) |
Apr
(43) |
May
(126) |
Jun
(82) |
Jul
(67) |
Aug
(28) |
Sep
(109) |
Oct
(30) |
Nov
(23) |
Dec
(34) |
2013 |
Jan
(14) |
Feb
(16) |
Mar
(7) |
Apr
(79) |
May
(76) |
Jun
(13) |
Jul
(76) |
Aug
(36) |
Sep
(22) |
Oct
(35) |
Nov
(167) |
Dec
(93) |
2014 |
Jan
(64) |
Feb
(14) |
Mar
(57) |
Apr
(63) |
May
(60) |
Jun
(15) |
Jul
(24) |
Aug
(19) |
Sep
(56) |
Oct
(70) |
Nov
(45) |
Dec
(52) |
2015 |
Jan
(56) |
Feb
(73) |
Mar
(34) |
Apr
(11) |
May
(24) |
Jun
(19) |
Jul
(11) |
Aug
(8) |
Sep
(25) |
Oct
(22) |
Nov
(38) |
Dec
(7) |
2016 |
Jan
(7) |
Feb
(34) |
Mar
(17) |
Apr
(10) |
May
(17) |
Jun
(7) |
Jul
(17) |
Aug
(31) |
Sep
(3) |
Oct
(34) |
Nov
(5) |
Dec
(2) |
2017 |
Jan
|
Feb
(4) |
Mar
(18) |
Apr
(6) |
May
(10) |
Jun
(13) |
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
(1) |
2018 |
Jan
(2) |
Feb
|
Mar
(3) |
Apr
(10) |
May
(5) |
Jun
|
Jul
(7) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(2) |
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(6) |
Aug
(2) |
Sep
(4) |
Oct
|
Nov
|
Dec
(3) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2022 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(30) |
Nov
|
Dec
(2) |
From: Andrew G. <aga...@re...> - 2015-08-14 12:54:09
|
This statement doesn’t seem quite right. “The purpose of the statement of cash flows is to show whether the company got their money from and how it was spent during the period being reported for a user selectable range of periods.” Did you mean to say “The purpose of the statement of cash flows is to show where the company got their money from and how it was spent during the period being reported for a user selectable range of periods.” Best Regards, Andrew Galuski ResMart LLC. 817.615.2038 (Office) 817.821.0544 (Cell) www.resmart.com<http://www.resmart.com> [resmart_logo] From: Rafael Chacón [mailto:raf...@gm...] Sent: Thursday, August 13, 2015 8:51 PM To: webERP Developers Subject: Re: [WebERP-developers] AnalysisHorizontalPosition.php Hi, I added info to doc/ManualGeneralLedger.html for the horizontal analysis, but also for the next statements. I will appreciate if you can review the document. Reading those reports is not very easy, I am looking for a clear explanation. Best regards, Rafael. 2015-08-13 9:39 GMT-06:00 Andrew Galuski <aga...@re...<mailto:aga...@re...>>: Reall6y looking forward to “statement of cash flows” Best Regards, Andrew Galuski ResMart LLC. 817.615.2038 (Office) 817.821.0544 (Cell) www.resmart.com<http://www.resmart.com> [resmart_logo] From: Rafael Chacón [mailto:raf...@gm...<mailto:raf...@gm...>] Sent: Thursday, August 13, 2015 9:18 AM To: webERP Developers Subject: Re: [WebERP-developers] AnalysisHorizontalPosition.php *** See http://unstable.verdorama.systems/downloads/AnalysisHorizontalIncome%20%282015-08-04%29.zip for attachment *** Best regards, Rafael. ---------- 2015-08-13 8:01 GMT-06:00 Rafael Chacón <raf...@gm...<mailto:raf...@gm...>>: Hi Ricard, 1) New script instead of to modify GLBalanceSheet.php script: Two "local" reasons: (a) Here, we plan to have a set of horizontal analysis (for statement of financial position, for statement of comprehensive income, for statement of changes in equity, and for statement of cash flows). A script to generate from one to all of them. The first step is to have a script for each horizontal analysis; the second is to create a script to select the horizontal analysis to generate (a “master” script) and to modify previous scripts (make them as “subroutine” scripts). Obviously, we have also to create scripts for a statement of changes in equity, and for statement of cash flows. (b) there are different users between GLBalanceSheet/AnalysisHorizontalPosition and GLProfit_Loss/AnalysisHorizontalIncome. Each addressee wants to see some columns and others do not. This involves to turn on/off some columns. We do not want to complicate these scripts (especially the formatting). 2) On the % of variation, some attention to signs must be improved: Yes, we are including a footnote to explain: (a) meaning of signs in Absolute variation; and (b) meaning of signs in Relative variation. In case of the Horizontal Analysis of Statement of Comprehensive Income, it is easy to understand: (*) positive absolute variation = increases the Net Profit; negative = decreases. (**) positive relative variation = the amount of the account increases; negative = decreases. I enclose AnalysisHorizontalPosition.php, if you want to test it and comment it. I warn you that this script does NOT have sections 1 and 2 (I'm fixing this). This “bug” occurred because we overwrite sections 1 and 2 (we use a section for “Gross profit” with an income and a cost groups). Best regards, Rafael. 2015-08-11 19:50 GMT-06:00 Pak Ricard <pak...@gm...<mailto:pak...@gm...>>: Hi Rafael: I've been playing with your new AnalysisHorizontalPosition.php script and looks very good. Thanks for sharing it! Just 2 questions: 1) Why don't modify directly the GLBalanceSheet.php script, so the variation column and % column are shown always in the BS? Like this we should only maintain 1 script not 2 very similar. (I'm lazy, so that's why I always look for reduction of code lines to maintain). 2) On the % of variation, some attention to signs must be improved. I'm not accountant so not sure if I'm right or not. Take the example below of a bank account. Last year we had -705.000 IDR (we owed the bank) and this year 4.745.000 IDR. The variation in IDR is right, but I dare say that the bank account increased by +773%, not - 1212121212 Cash bank IDR 4,745,000 -705,000 5,450,000 -773% but if the variation had been on the other side (from + last year to - this year), it would be correct to use the - sign). Also I guess it should be opposite for liabilities. Regards, Ricard ------------------------------------------------------------------------------ _______________________________________________ Web-erp-developers mailing list Web...@li...<mailto:Web...@li...> https://lists.sourceforge.net/lists/listinfo/web-erp-developers ------------------------------------------------------------------------------ _______________________________________________ Web-erp-developers mailing list Web...@li...<mailto:Web...@li...> https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: Pak R. <pak...@gm...> - 2015-08-14 08:10:11
|
Many thanks rafael: All clear now :-) I'll test the new script as well and come back to you if needed. Again, thanks for sharing these scripts and ideas. it's always helpful to see and understand someone else's point of view. Regards, Ricard 2015-08-14 9:50 GMT+08:00 Rafael Chacón <raf...@gm...>: > Hi, > > I added info to doc/ManualGeneralLedger.html for the horizontal analysis, > but also for the next statements. I will appreciate if you can review the > document. Reading those reports is not very easy, I am looking for a clear > explanation. > > Best regards, Rafael. > > 2015-08-13 9:39 GMT-06:00 Andrew Galuski <aga...@re...>: > >> Reall6y looking forward to “statement of cash flows” >> >> >> >> >> >> Best Regards, >> >> Andrew Galuski >> >> ResMart LLC. >> >> 817.615.2038 (Office) >> >> 817.821.0544 (Cell) >> >> www.resmart.com >> >> [image: resmart_logo] >> >> >> >> *From:* Rafael Chacón [mailto:raf...@gm...] >> *Sent:* Thursday, August 13, 2015 9:18 AM >> *To:* webERP Developers >> *Subject:* Re: [WebERP-developers] AnalysisHorizontalPosition.php >> >> >> >> >> *** See >> http://unstable.verdorama.systems/downloads/AnalysisHorizontalIncome%20%282015-08-04%29.zip >> for attachment *** >> >> Best regards, Rafael. >> >> ---------- >> >> 2015-08-13 8:01 GMT-06:00 Rafael Chacón <raf...@gm...>: >> >> Hi Ricard, >> >> 1) New script instead of to modify GLBalanceSheet.php script: >> Two "local" reasons: >> (a) Here, we plan to have a set of horizontal analysis (for statement of >> financial position, for statement of comprehensive income, for statement of >> changes in equity, and for statement of cash flows). A script to generate >> from one to all of them. The first step is to have a script for each >> horizontal analysis; the second is to create a script to select the >> horizontal analysis to generate (a “master” script) and to modify previous >> scripts (make them as “subroutine” scripts). Obviously, we have also to >> create scripts for a statement of changes in equity, and for statement of >> cash flows. >> (b) there are different users between >> GLBalanceSheet/AnalysisHorizontalPosition and >> GLProfit_Loss/AnalysisHorizontalIncome. Each addressee wants to see some >> columns and others do not. This involves to turn on/off some columns. We do >> not want to complicate these scripts (especially the formatting). >> >> 2) On the % of variation, some attention to signs must be improved: >> Yes, we are including a footnote to explain: (a) meaning of signs in >> Absolute variation; and (b) meaning of signs in Relative variation. >> In case of the Horizontal Analysis of Statement of Comprehensive Income, >> it is easy to understand: (*) positive absolute variation = increases the >> Net Profit; negative = decreases. (**) positive relative variation = the >> amount of the account increases; negative = decreases. >> >> I enclose AnalysisHorizontalPosition.php, if you want to test it and >> comment it. >> I warn you that this script does NOT have sections 1 and 2 (I'm fixing >> this). This “bug” occurred because we overwrite sections 1 and 2 (we use a >> section for “Gross profit” with an income and a cost groups). >> >> Best regards, Rafael. >> >> >> >> 2015-08-11 19:50 GMT-06:00 Pak Ricard <pak...@gm...>: >> >> Hi Rafael: >> >> >> >> I've been playing with your new AnalysisHorizontalPosition.php script and >> looks very good. Thanks for sharing it! >> >> >> >> Just 2 questions: >> >> >> >> 1) Why don't modify directly the GLBalanceSheet.php script, so the >> variation column and % column are shown always in the BS? Like this we >> should only maintain 1 script not 2 very similar. (I'm lazy, so that's why >> I always look for reduction of code lines to maintain). >> >> >> >> 2) On the % of variation, some attention to signs must be improved. I'm >> not accountant so not sure if I'm right or not. >> >> >> >> Take the example below of a bank account. Last year we had -705.000 IDR >> (we owed the bank) and this year 4.745.000 IDR. The variation in IDR is >> right, but I dare say that the bank account increased by +773%, not - >> >> >> >> 1212121212 >> >> Cash bank IDR >> >> 4,745,000 >> >> -705,000 >> >> 5,450,000 >> >> -773% >> >> >> >> but if the variation had been on the other side (from + last year to - >> this year), it would be correct to use the - sign). Also I guess it should >> be opposite for liabilities. >> >> >> >> Regards, >> Ricard >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |
From: Rafael C. <raf...@gm...> - 2015-08-14 01:50:48
|
Hi, I added info to doc/ManualGeneralLedger.html for the horizontal analysis, but also for the next statements. I will appreciate if you can review the document. Reading those reports is not very easy, I am looking for a clear explanation. Best regards, Rafael. 2015-08-13 9:39 GMT-06:00 Andrew Galuski <aga...@re...>: > Reall6y looking forward to “statement of cash flows” > > > > > > Best Regards, > > Andrew Galuski > > ResMart LLC. > > 817.615.2038 (Office) > > 817.821.0544 (Cell) > > www.resmart.com > > [image: resmart_logo] > > > > *From:* Rafael Chacón [mailto:raf...@gm...] > *Sent:* Thursday, August 13, 2015 9:18 AM > *To:* webERP Developers > *Subject:* Re: [WebERP-developers] AnalysisHorizontalPosition.php > > > > > *** See > http://unstable.verdorama.systems/downloads/AnalysisHorizontalIncome%20%282015-08-04%29.zip > for attachment *** > > Best regards, Rafael. > > ---------- > > 2015-08-13 8:01 GMT-06:00 Rafael Chacón <raf...@gm...>: > > Hi Ricard, > > 1) New script instead of to modify GLBalanceSheet.php script: > Two "local" reasons: > (a) Here, we plan to have a set of horizontal analysis (for statement of > financial position, for statement of comprehensive income, for statement of > changes in equity, and for statement of cash flows). A script to generate > from one to all of them. The first step is to have a script for each > horizontal analysis; the second is to create a script to select the > horizontal analysis to generate (a “master” script) and to modify previous > scripts (make them as “subroutine” scripts). Obviously, we have also to > create scripts for a statement of changes in equity, and for statement of > cash flows. > (b) there are different users between > GLBalanceSheet/AnalysisHorizontalPosition and > GLProfit_Loss/AnalysisHorizontalIncome. Each addressee wants to see some > columns and others do not. This involves to turn on/off some columns. We do > not want to complicate these scripts (especially the formatting). > > 2) On the % of variation, some attention to signs must be improved: > Yes, we are including a footnote to explain: (a) meaning of signs in > Absolute variation; and (b) meaning of signs in Relative variation. > In case of the Horizontal Analysis of Statement of Comprehensive Income, > it is easy to understand: (*) positive absolute variation = increases the > Net Profit; negative = decreases. (**) positive relative variation = the > amount of the account increases; negative = decreases. > > I enclose AnalysisHorizontalPosition.php, if you want to test it and > comment it. > I warn you that this script does NOT have sections 1 and 2 (I'm fixing > this). This “bug” occurred because we overwrite sections 1 and 2 (we use a > section for “Gross profit” with an income and a cost groups). > > Best regards, Rafael. > > > > 2015-08-11 19:50 GMT-06:00 Pak Ricard <pak...@gm...>: > > Hi Rafael: > > > > I've been playing with your new AnalysisHorizontalPosition.php script and > looks very good. Thanks for sharing it! > > > > Just 2 questions: > > > > 1) Why don't modify directly the GLBalanceSheet.php script, so the > variation column and % column are shown always in the BS? Like this we > should only maintain 1 script not 2 very similar. (I'm lazy, so that's why > I always look for reduction of code lines to maintain). > > > > 2) On the % of variation, some attention to signs must be improved. I'm > not accountant so not sure if I'm right or not. > > > > Take the example below of a bank account. Last year we had -705.000 IDR > (we owed the bank) and this year 4.745.000 IDR. The variation in IDR is > right, but I dare say that the bank account increased by +773%, not - > > > > 1212121212 > > Cash bank IDR > > 4,745,000 > > -705,000 > > 5,450,000 > > -773% > > > > but if the variation had been on the other side (from + last year to - > this year), it would be correct to use the - sign). Also I guess it should > be opposite for liabilities. > > > > Regards, > Ricard > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |
From: Andrew G. <aga...@re...> - 2015-08-13 15:54:58
|
Reall6y looking forward to “statement of cash flows” Best Regards, Andrew Galuski ResMart LLC. 817.615.2038 (Office) 817.821.0544 (Cell) www.resmart.com<http://www.resmart.com> [resmart_logo] From: Rafael Chacón [mailto:raf...@gm...] Sent: Thursday, August 13, 2015 9:18 AM To: webERP Developers Subject: Re: [WebERP-developers] AnalysisHorizontalPosition.php *** See http://unstable.verdorama.systems/downloads/AnalysisHorizontalIncome%20%282015-08-04%29.zip for attachment *** Best regards, Rafael. ---------- 2015-08-13 8:01 GMT-06:00 Rafael Chacón <raf...@gm...<mailto:raf...@gm...>>: Hi Ricard, 1) New script instead of to modify GLBalanceSheet.php script: Two "local" reasons: (a) Here, we plan to have a set of horizontal analysis (for statement of financial position, for statement of comprehensive income, for statement of changes in equity, and for statement of cash flows). A script to generate from one to all of them. The first step is to have a script for each horizontal analysis; the second is to create a script to select the horizontal analysis to generate (a “master” script) and to modify previous scripts (make them as “subroutine” scripts). Obviously, we have also to create scripts for a statement of changes in equity, and for statement of cash flows. (b) there are different users between GLBalanceSheet/AnalysisHorizontalPosition and GLProfit_Loss/AnalysisHorizontalIncome. Each addressee wants to see some columns and others do not. This involves to turn on/off some columns. We do not want to complicate these scripts (especially the formatting). 2) On the % of variation, some attention to signs must be improved: Yes, we are including a footnote to explain: (a) meaning of signs in Absolute variation; and (b) meaning of signs in Relative variation. In case of the Horizontal Analysis of Statement of Comprehensive Income, it is easy to understand: (*) positive absolute variation = increases the Net Profit; negative = decreases. (**) positive relative variation = the amount of the account increases; negative = decreases. I enclose AnalysisHorizontalPosition.php, if you want to test it and comment it. I warn you that this script does NOT have sections 1 and 2 (I'm fixing this). This “bug” occurred because we overwrite sections 1 and 2 (we use a section for “Gross profit” with an income and a cost groups). Best regards, Rafael. 2015-08-11 19:50 GMT-06:00 Pak Ricard <pak...@gm...<mailto:pak...@gm...>>: Hi Rafael: I've been playing with your new AnalysisHorizontalPosition.php script and looks very good. Thanks for sharing it! Just 2 questions: 1) Why don't modify directly the GLBalanceSheet.php script, so the variation column and % column are shown always in the BS? Like this we should only maintain 1 script not 2 very similar. (I'm lazy, so that's why I always look for reduction of code lines to maintain). 2) On the % of variation, some attention to signs must be improved. I'm not accountant so not sure if I'm right or not. Take the example below of a bank account. Last year we had -705.000 IDR (we owed the bank) and this year 4.745.000 IDR. The variation in IDR is right, but I dare say that the bank account increased by +773%, not - 1212121212 Cash bank IDR 4,745,000 -705,000 5,450,000 -773% but if the variation had been on the other side (from + last year to - this year), it would be correct to use the - sign). Also I guess it should be opposite for liabilities. Regards, Ricard ------------------------------------------------------------------------------ _______________________________________________ Web-erp-developers mailing list Web...@li...<mailto:Web...@li...> https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: Rafael C. <raf...@gm...> - 2015-08-13 14:18:27
|
*** See http://unstable.verdorama.systems/downloads/AnalysisHorizontalIncome%20%282015-08-04%29.zip for attachment *** Best regards, Rafael. ---------- 2015-08-13 8:01 GMT-06:00 Rafael Chacón <raf...@gm...>: > Hi Ricard, > > 1) New script instead of to modify GLBalanceSheet.php script: > Two "local" reasons: > (a) Here, we plan to have a set of horizontal analysis (for statement of > financial position, for statement of comprehensive income, for statement of > changes in equity, and for statement of cash flows). A script to generate > from one to all of them. The first step is to have a script for each > horizontal analysis; the second is to create a script to select the > horizontal analysis to generate (a “master” script) and to modify previous > scripts (make them as “subroutine” scripts). Obviously, we have also to > create scripts for a statement of changes in equity, and for statement of > cash flows. > (b) there are different users between > GLBalanceSheet/AnalysisHorizontalPosition and > GLProfit_Loss/AnalysisHorizontalIncome. Each addressee wants to see some > columns and others do not. This involves to turn on/off some columns. We do > not want to complicate these scripts (especially the formatting). > > 2) On the % of variation, some attention to signs must be improved: > Yes, we are including a footnote to explain: (a) meaning of signs in > Absolute variation; and (b) meaning of signs in Relative variation. > In case of the Horizontal Analysis of Statement of Comprehensive Income, > it is easy to understand: (*) positive absolute variation = increases the > Net Profit; negative = decreases. (**) positive relative variation = the > amount of the account increases; negative = decreases. > > I enclose AnalysisHorizontalPosition.php, if you want to test it and > comment it. > I warn you that this script does NOT have sections 1 and 2 (I'm fixing > this). This “bug” occurred because we overwrite sections 1 and 2 (we use a > section for “Gross profit” with an income and a cost groups). > > Best regards, Rafael. > > > 2015-08-11 19:50 GMT-06:00 Pak Ricard <pak...@gm...>: > >> Hi Rafael: >> >> I've been playing with your new AnalysisHorizontalPosition.php script and >> looks very good. Thanks for sharing it! >> >> Just 2 questions: >> >> 1) Why don't modify directly the GLBalanceSheet.php script, so the >> variation column and % column are shown always in the BS? Like this we >> should only maintain 1 script not 2 very similar. (I'm lazy, so that's why >> I always look for reduction of code lines to maintain). >> >> 2) On the % of variation, some attention to signs must be improved. I'm >> not accountant so not sure if I'm right or not. >> >> Take the example below of a bank account. Last year we had -705.000 IDR >> (we owed the bank) and this year 4.745.000 IDR. The variation in IDR is >> right, but I dare say that the bank account increased by +773%, not - >> >> 1212121212Cash bank IDR4,745,000-705,0005,450,000-773% >> but if the variation had been on the other side (from + last year to - >> this year), it would be correct to use the - sign). Also I guess it should >> be opposite for liabilities. >> >> Regards, >> Ricard >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> > |
From: Pak R. <pak...@gm...> - 2015-08-12 01:51:00
|
Hi Rafael: I've been playing with your new AnalysisHorizontalPosition.php script and looks very good. Thanks for sharing it! Just 2 questions: 1) Why don't modify directly the GLBalanceSheet.php script, so the variation column and % column are shown always in the BS? Like this we should only maintain 1 script not 2 very similar. (I'm lazy, so that's why I always look for reduction of code lines to maintain). 2) On the % of variation, some attention to signs must be improved. I'm not accountant so not sure if I'm right or not. Take the example below of a bank account. Last year we had -705.000 IDR (we owed the bank) and this year 4.745.000 IDR. The variation in IDR is right, but I dare say that the bank account increased by +773%, not - 1212121212Cash bank IDR4,745,000-705,0005,450,000-773% but if the variation had been on the other side (from + last year to - this year), it would be correct to use the - sign). Also I guess it should be opposite for liabilities. Regards, Ricard |
From: Rafael C. <raf...@gm...> - 2015-08-04 03:56:46
|
Hi, I added a script to generate an horizontal analysis of the statement of financial position. I inserted the corresponding record to the scripts table, but I did not create a link in the menu. This is because the class="scrollable" is in testing. Specifically, the JavaScript to adjust the width of thead cells. I would like to know if that class will affect the work in process of the CSS for small devices (Exson Qu, et alter). CSS: /* BEGIN: Create a scrollable tbody while thead stays fixed. */ table.scrollable tbody, table.scrollable thead { display: block; } table.scrollable tbody { height: 300px;/* Just for the demo. */ overflow-x: hidden;/* Hide the horizontal scroll. */ overflow-y: auto;/* Trigger vertical scroll. */ } /* END: Create a scrollable tbody while thead stays fixed. */ JavaScript: // Change the selector if needed var $table = $('table.scroll'), $bodyCells = $table.find('tbody tr:first').children(), colWidth; // Adjust the width of thead cells when window resizes $(window).resize(function() { // Get the tbody columns width array colWidth = $bodyCells.map(function() { return $(this).width(); }).get(); // Set the width of thead columns $table.find('thead tr').children().each(function(i, v) { $(v).width(colWidth[i]); }); }).resize(); // Trigger resize handler Reference: "HTML table 100% width, with vertical scroll inside tbody - JSFiddle". In process: "Horizontal analysis of the statement of comprehensive income". Best regards, Rafael. ---------- Forwarded message ---------- From: <rc...@us...> Date: 2015-08-03 21:27 GMT-06:00 Subject: [Web-erp-svn] SF.net SVN: web-erp:[7332] trunk To: web...@li... Revision: 7332 http://sourceforge.net/p/web-erp/reponame/7332 Author: rchacon Date: 2015-08-04 03:27:51 +0000 (Tue, 04 Aug 2015) Log Message: ----------- Add new script AnalysisHorizontalPosition.php to generate an horizontal analysis of the statement of financial position. Modified Paths: -------------- trunk/doc/Change.log trunk/sql/mysql/upgrade4.12.3-4.13.sql Added Paths: ----------- trunk/AnalysisHorizontalPosition.php Added: trunk/AnalysisHorizontalPosition.php =================================================================== --- trunk/AnalysisHorizontalPosition.php (rev 0) +++ trunk/AnalysisHorizontalPosition.php 2015-08-04 03:27:51 UTC (rev 7332) @@ -0,0 +1,422 @@ +<?php +/* $Id: AnalysisHorizontalPosition.php 7268 2015-04-19 14:57:47Z rchacon $*/ +/* Horizontal analysis of statement of financial position. */ + +function RelativeVariation($CurrentPeriod, $PreviousPeriod) { + // Calculates the relative variation between current and previous periods. Uses percent in locale number format. + if($PreviousPeriod<>0) { + return locale_number_format(($CurrentPeriod-$PreviousPeriod)*100/$PreviousPeriod,$_SESSION['CompanyRecord']['decimalplaces']) . '%'; + } else { + return _('N/A'); + } +} + +include ('includes/session.inc'); +$Title = _('Horizontal Analysis of Statement of Financial Position');// Screen identification. +$ViewTopic = 'GeneralLedger';// Filename's id in ManualContents.php's TOC. +$BookMark = 'AnalysisHorizontalPosition';// Anchor's id in the manual's html document. +include('includes/SQL_CommonFunctions.inc'); +include('includes/AccountSectionsDef.inc'); // This loads the $Sections variable + +if(! isset($_POST['BalancePeriodEnd']) or isset($_POST['SelectADifferentPeriod'])) { + + /*Show a form to allow input of criteria for TB to show */ + include('includes/header.inc'); + echo '<p class="page_title_text"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/printer.png" title="', // Icon image. + _('Print Horizontal analysis of statement of financial position'), '" /> ', // Icon title. + _('Horizontal Analysis of Statement of Financial Position'), '</p>';// Page title. + + echo '<div class="page_help_text">', + _('Horizontal analysis (also known as trend analysis) is a financial statement analysis technique that shows changes in the amounts of corresponding financial statement items over a period of time. It is a useful tool to evaluate trend situations.'), '<br />', + _('The statements for two periods are used in horizontal analysis. The earliest period is used as the base period. The items on the later statement are compared with items on the statement of the base period. The changes are shown both in currency (absolute variation) and percentage (relative variation).'), '<br />', + _('webERP is an "accrual" based system (not a "cash based" system). Accrual systems include items when they are invoiced to the customer, and when expenses are owed based on the supplier invoice date.'), '</div>', + '<form method="post" action="', htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8'), '">', + '<input type="hidden" name="FormID" value="', $_SESSION['FormID'], '" />', + '<table class="selection"> + <tr> + <td>', _('Select the balance date'), ':</td> + <td><select required="required" name="BalancePeriodEnd">'; + + $periodno=GetPeriod(Date($_SESSION['DefaultDateFormat']), $db); + $sql = "SELECT lastdate_in_period FROM periods WHERE periodno='".$periodno . "'"; + $result = DB_query($sql); + $myrow=DB_fetch_array($result, $db); + $lastdate_in_period=$myrow[0]; + + $sql = "SELECT periodno, lastdate_in_period FROM periods ORDER BY periodno DESC"; + $Periods = DB_query($sql); + + while($myrow=DB_fetch_array($Periods,$db)) { + if( $myrow['periodno']== $periodno) { + echo '<option selected="selected" value="', $myrow['periodno'], '">', ConvertSQLDate($lastdate_in_period), '</option>'; + } else { + echo '<option value="', $myrow['periodno'], '">', ConvertSQLDate($myrow['lastdate_in_period']), '</option>'; + } + } + echo '</select></td> + </tr> + <tr> + <td>', _('Detail or summary'), ':</td> + <td><select name="Detail" required="required" title="', _('Selecting Summary will show on the totals at the account group level'), '" > + <option value="Summary">', _('Summary'), '</option> + <option selected="selected" value="Detailed">', _('All Accounts'), '</option> + </select></td> + </tr> + <tr> + <td>', _('Show all accounts including zero balances'), '</td> + <td><input name="ShowZeroBalances" title="', _('Check this box to display all accounts including those accounts with no balance'), '" type="checkbox" /></td> + </tr> + </table> + <br />', // Form buttons: + '<div class="centre noprint">', + '<button name="ShowBalanceSheet" type="submit" value="', _('Show on Screen (HTML)'), '"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/gl.png" /> ', _('Show on Screen (HTML)'), '</button> ', // "Show on Screen (HTML)" button. + '<button formaction="index.php?Application=GL" type="submit"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/previous.png" /> ', _('Return'), '</button>', // "Return" button. + '</div>', + '</form>'; + + /*Now do the posting while the user is thinking about the period to select */ + include ('includes/GLPostings.inc'); + +} else { + include('includes/header.inc'); + + $RetainedEarningsAct = $_SESSION['CompanyRecord']['retainedearnings']; + + $sql = "SELECT lastdate_in_period FROM periods WHERE periodno='" . $_POST['BalancePeriodEnd'] . "'"; + $PrdResult = DB_query($sql); + $myrow = DB_fetch_row($PrdResult); + $BalanceDate = ConvertSQLDate($myrow[0]); + + // Calculate B/Fwd retained earnings: + $SQL = "SELECT Sum(CASE WHEN chartdetails.period='" . $_POST['BalancePeriodEnd'] . "' THEN chartdetails.bfwd + chartdetails.actual ELSE 0 END) AS accumprofitbfwd, + Sum(CASE WHEN chartdetails.period='" . ($_POST['BalancePeriodEnd'] - 12) . "' THEN chartdetails.bfwd + chartdetails.actual ELSE 0 END) AS lyaccumprofitbfwd + FROM chartmaster INNER JOIN accountgroups + ON chartmaster.group_ = accountgroups.groupname INNER JOIN chartdetails + ON chartmaster.accountcode= chartdetails.accountcode + WHERE accountgroups.pandl=1"; + + $AccumProfitResult = DB_query($SQL,_('The accumulated profits brought forward could not be calculated by the SQL because')); + + $AccumProfitRow = DB_fetch_array($AccumProfitResult); /*should only be one row returned */ + + $SQL = "SELECT accountgroups.sectioninaccounts, + accountgroups.groupname, + accountgroups.parentgroupname, + chartdetails.accountcode, + chartmaster.accountname, + Sum(CASE WHEN chartdetails.period='" . $_POST['BalancePeriodEnd'] . "' THEN chartdetails.bfwd + chartdetails.actual ELSE 0 END) AS balancecfwd, + Sum(CASE WHEN chartdetails.period='" . ($_POST['BalancePeriodEnd'] - 12) . "' THEN chartdetails.bfwd + chartdetails.actual ELSE 0 END) AS lybalancecfwd + FROM chartmaster INNER JOIN accountgroups + ON chartmaster.group_ = accountgroups.groupname INNER JOIN chartdetails + ON chartmaster.accountcode= chartdetails.accountcode + WHERE accountgroups.pandl=0 + GROUP BY accountgroups.groupname, + chartdetails.accountcode, + chartmaster.accountname, + accountgroups.parentgroupname, + accountgroups.sequenceintb, + accountgroups.sectioninaccounts + ORDER BY accountgroups.sectioninaccounts, + accountgroups.sequenceintb, + accountgroups.groupname, + chartdetails.accountcode"; + + $AccountsResult = DB_query($SQL,_('No general ledger accounts were returned by the SQL because')); + + // Page title as IAS 1, numerals 10 and 51: + include_once('includes/CurrenciesArray.php');// Array to retrieve currency name. + echo '<div id="Report">', // Division to identify the report block. + '<p class="page_title_text"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/gl.png" title="', // Icon image. + _('Horizontal Analysis of Statement of Financial Position'), '" /> ', // Icon title. + _('Horizontal Analysis of Statement of Financial Position'), '<br />', // Page title, reporting statement. + stripslashes($_SESSION['CompanyRecord']['coyname']), '<br />', // Page title, reporting entity. + _('as at'), ' ', $BalanceDate, '<br />', // Page title, reporting period. + _('All amounts stated in'), ': ', _($CurrencyName[$_SESSION['CompanyRecord']['currencydefault']]), '</p>';// Page title, reporting presentation currency and level of rounding used. + + echo '<table class="scrollable"> + <thead> + <tr>'; + if($_POST['Detail']=='Detailed') {// Detailed report: + echo '<th class="text">', _('Account'), '</th> + <th class="text">', _('Account Name'), '</th>'; + } else {// Summary report: + echo '<th class="text" colspan="2">', _('Summary'), '</th>'; + } + echo '<th class="number">', $BalanceDate, '</th> + <th class="number">', _('Last Year'), '</th> + <th class="number">', _('Absolute variation'), '</th> + <th class="number">', _('Relative variation'), '</th> + </tr> + </thead> + <tbody>';// thead used in conjunction with tbody enable scrolling of the table body independently of the header and footer. Also, when printing a large table that spans multiple pages, these elements can enable the table header to be printed at the top of each page. + + $k=0; //row colour counter + $Section=''; + $SectionBalance = 0; + $SectionBalanceLY = 0; + + $LYCheckTotal = 0; + $CheckTotal = 0; + + $ActGrp =''; + $Level=0; + $ParentGroups=array(); + $ParentGroups[$Level]=''; + $GroupTotal = array(0); + $LYGroupTotal = array(0); + + $j=0; //row counter + + while($myrow=DB_fetch_array($AccountsResult)) { + $AccountBalance = $myrow['balancecfwd']; + $LYAccountBalance = $myrow['lybalancecfwd']; + + if($myrow['accountcode'] == $RetainedEarningsAct) { + $AccountBalance += $AccumProfitRow['accumprofitbfwd']; + $LYAccountBalance += $AccumProfitRow['lyaccumprofitbfwd']; + } + + if($myrow['groupname']!= $ActGrp AND $ActGrp != '') { + if($myrow['parentgroupname']!=$ActGrp) { + while($myrow['groupname']!=$ParentGroups[$Level] AND $Level>0) { + if($_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + } + echo '<tr> + <td colspan="2"><i>', $ParentGroups[$Level], '</i></td> + <td class="number">', locale_number_format($GroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($GroupTotal[$Level]-$LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', RelativeVariation($GroupTotal[$Level],$LYGroupTotal[$Level]), '</td> + </tr>'; + $GroupTotal[$Level] = 0; + $LYGroupTotal[$Level] = 0; + $ParentGroups[$Level] = ''; + $Level--; + $j++; + } + if($_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + } + echo '<tr> + <td colspan="2">', $ParentGroups[$Level], '</td> + <td class="number">', locale_number_format($GroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($GroupTotal[$Level]-$LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', RelativeVariation($GroupTotal[$Level],$LYGroupTotal[$Level]), '</td> + </tr>'; + $GroupTotal[$Level] = 0; + $LYGroupTotal[$Level] = 0; + $ParentGroups[$Level] = ''; + $j++; + } + } + if($myrow['sectioninaccounts'] != $Section ) { + + if($Section!='') { + if($_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + } else { + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + } + echo '<tr> + <td colspan="2"><h2>', $Sections[$Section], '</h2></td> + <td class="number"><h2>', locale_number_format($SectionBalance,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', locale_number_format($SectionBalanceLY,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', locale_number_format($SectionBalance-$SectionBalanceLY,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', RelativeVariation($SectionBalance,$SectionBalanceLY), '</h2></td> + </tr>'; + $j++; + } + $SectionBalanceLY = 0; + $SectionBalance = 0; + $Section = $myrow['sectioninaccounts']; + if($_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="6"><h2>', $Sections[$myrow['sectioninaccounts']], '</h2></td> + </tr>'; + } + } + + if($myrow['groupname'] != $ActGrp) { + + if($ActGrp!='' AND $myrow['parentgroupname']==$ActGrp) { + $Level++; + } + + if($_POST['Detail']=='Detailed') { + $ActGrp = $myrow['groupname']; + echo '<tr> + <td colspan="6"><h3>', $myrow['groupname'], '</h3></td> + </tr>'; + } + $GroupTotal[$Level] = 0; + $LYGroupTotal[$Level] = 0; + $ActGrp = $myrow['groupname']; + $ParentGroups[$Level] = $myrow['groupname']; + $j++; + } + + $SectionBalanceLY += $LYAccountBalance; + $SectionBalance += $AccountBalance; + for ($i=0;$i<=$Level;$i++) { + $LYGroupTotal[$i] += $LYAccountBalance; + $GroupTotal[$i] += $AccountBalance; + } + $LYCheckTotal += $LYAccountBalance; + $CheckTotal += $AccountBalance; + + if($_POST['Detail']=='Detailed') { + if(isset($_POST['ShowZeroBalances']) OR (!isset($_POST['ShowZeroBalances']) AND (round($AccountBalance,$_SESSION['CompanyRecord']['decimalplaces']) <> 0 OR round($LYAccountBalance,$_SESSION['CompanyRecord']['decimalplaces']) <> 0))) { + if($k==1) { + echo '<tr class="OddTableRows">'; + $k=0; + } else { + echo '<tr class="EvenTableRows">'; + $k++; + } + echo '<td><a href="', $RootPath, '/GLAccountInquiry.php?Period=', $_POST['BalancePeriodEnd'], '&Account=', $myrow['accountcode'], '">', $myrow['accountcode'], '</a></td> + <td>', htmlspecialchars($myrow['accountname'],ENT_QUOTES,'UTF-8',false), '</td> + <td class="number">', locale_number_format($AccountBalance,$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($LYAccountBalance,$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($AccountBalance-$LYAccountBalance,$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', RelativeVariation($AccountBalance,$LYAccountBalance), '</td> + </tr>'; + $j++; + } + } + } + //end of loop + + while($myrow['groupname']!=$ParentGroups[$Level] AND $Level>0) { + if($_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + } + echo '<tr> + <td colspan="2"><i>', $ParentGroups[$Level], '</i></td> + <td class="number">', locale_number_format($GroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($GroupTotal[$Level]-$LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', RelativeVariation($GroupTotal[$Level],$LYGroupTotal[$Level]), '</td> + </tr>'; + $Level--; + } + if($_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + } + echo '<tr> + <td colspan="2">', $ParentGroups[$Level], '</td> + <td class="number">', locale_number_format($GroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', locale_number_format($GroupTotal[$Level]-$LYGroupTotal[$Level],$_SESSION['CompanyRecord']['decimalplaces']), '</td> + <td class="number">', RelativeVariation($GroupTotal[$Level],$LYGroupTotal[$Level]), '</td> + </tr>'; + + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + + echo '<tr> + <td colspan="2"><h2>', $Sections[$Section], '</h2></td> + <td class="number"><h2>', locale_number_format($SectionBalance,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', locale_number_format($SectionBalanceLY,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', locale_number_format($SectionBalance-$SectionBalanceLY,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', RelativeVariation($SectionBalance,$SectionBalanceLY), '</h2></td> + </tr>'; + + $Section = $myrow['sectioninaccounts']; + + if(isset($myrow['sectioninaccounts']) and $_POST['Detail']=='Detailed') { + echo '<tr> + <td colspan="6"><h2>', $Sections[$myrow['sectioninaccounts']], '</h2></td> + </tr>'; + } + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + + echo'<tr> + <td colspan="2"><h2>', _('Check Total'), '</h2></td> + <td class="number"><h2>', locale_number_format($CheckTotal,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', locale_number_format($LYCheckTotal,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', locale_number_format($CheckTotal-$LYCheckTotal,$_SESSION['CompanyRecord']['decimalplaces']), '</h2></td> + <td class="number"><h2>', RelativeVariation($CheckTotal,$LYCheckTotal), '</h2></td> + </tr>'; + + echo '<tr> + <td colspan="2"> </td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + <td><hr /></td> + </tr>'; + + echo '</tbody>', // See comment at the begin of the table. + '</table> + </div>', // Close div id="Report". + '<br />'; + + echo '<form method="post" action="', htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8'), '">', + '<input type="hidden" name="FormID" value="', $_SESSION['FormID'], '" />', + '<input type="hidden" name="BalancePeriodEnd" value="', $_POST['BalancePeriodEnd'], '" />', // Form buttons: + '<div class="centre noprint">', + '<button onclick="javascript:window.print()" type="button"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/printer.png" /> ', _('Print This'), '</button> ', // "Print This" button. + '<button name="SelectADifferentPeriod" type="submit" value="', _('Select A Different Period'), '"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/gl.png" /> ', _('Select A Different Period'), '</button> ', // "Select A Different Period" button. + '<button formaction="index.php?Application=GL" type="submit"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/previous.png" /> ', _('Return'), '</button>', // "Return" button. + '</div>', + '</form>'; +} + +include('includes/footer.inc'); +?> \ No newline at end of file Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2015-08-02 16:54:25 UTC (rev 7331) +++ trunk/doc/Change.log 2015-08-04 03:27:51 UTC (rev 7332) @@ -1,5 +1,6 @@ webERP Change Log +04/08/15 RChacon: Add new script AnalysisHorizontalPosition.php to generate an horizontal analysis of the statement of financial position. 02/08/15 RChacon: In CustomerReceipt.php, move currency tags near currency ratesand other minor changes. 27/07/15 RChacon: In Payments.php, move currency tags near currency rates. 20/06/15 RChacon: In header.inc, add meta tag to keep relationship between CSS pixels and device pixels. Modified: trunk/sql/mysql/upgrade4.12.3-4.13.sql =================================================================== --- trunk/sql/mysql/upgrade4.12.3-4.13.sql 2015-08-02 16:54:25 UTC (rev 7331) +++ trunk/sql/mysql/upgrade4.12.3-4.13.sql 2015-08-04 03:27:51 UTC (rev 7332) @@ -7,5 +7,10 @@ ALTER TABLE `loctransfercancellations` ADD INDEX `Index1` (`reference`, `stockid`) COMMENT ''; ALTER TABLE `loctransfercancellations` ADD INDEX `Index2` (`canceldate`, `reference`, `stockid`) COMMENT ''; +-- Add new script: +INSERT INTO `scripts` (`script`, `pagesecurity`, `description`) VALUES + ('AnalysisHorizontalPosition.php', '8', 'Horizontal analysis of statement of financial position'); + + -- Update version number: UPDATE config SET confvalue='4.13' WHERE confname='VersionNumber'; ------------------------------------------------------------------------------ _______________________________________________ Web-erp-svn mailing list Web...@li... https://lists.sourceforge.net/lists/listinfo/web-erp-svn |
From: Alastair K. <kn...@gm...> - 2015-07-24 02:41:21
|
I'm all for git as well. On 24/07/15 06:32, gilberto dos santos alves wrote: > +1 for git > > 2015-07-23 18:49 GMT+00:00 Humberto Salazar <we...@si... > <mailto:we...@si...>>: > > Mové to git > > *De: *Rafael Chacón > *Enviado: *jueves, 23 de julio de 2015 12:57 p.m. > *Para: *webERP Developers > *Responder a: *webERP Developers > *Asunto: *Re: [WebERP-developers] svn problems > > > Thanks. > > Do you believe is is convenient to move from this platform ? > > Regards, Rafael. > > 2015-07-22 17:21 GMT-06:00 Pak Ricard <pak...@gm... > <mailto:pak...@gm...>>: > > Hi Rafael: > > Yes, something melted down and has been down for a few days... > http://sourceforge.net/blog/category/sitestatus/ > > > Regards, > Ricard > > 2015-07-19 22:55 GMT+08:00 Rafael Chacón > <raf...@gm... > <mailto:raf...@gm...>>: > > Hello, > > I can not svn_checkout nor svn_commit. I seems that > sourceforge.net <http://sourceforge.net> for developers is > down. > > Has someone else experienced this problem? > > Best regards, Rafael. > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > <mailto:Web...@li...> > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > <mailto:Web...@li...> > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > <mailto:Web...@li...> > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > -- > gilberto dos santos alves > +55(11)9-8646-5049 > sao paulo - sp - brasil > > > > > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: gilberto d. s. a. <gs...@gm...> - 2015-07-23 20:32:42
|
+1 for git 2015-07-23 18:49 GMT+00:00 Humberto Salazar <we...@si...>: > Mové to git > > *De: *Rafael Chacón > *Enviado: *jueves, 23 de julio de 2015 12:57 p.m. > *Para: *webERP Developers > *Responder a: *webERP Developers > *Asunto: *Re: [WebERP-developers] svn problems > > Thanks. > > Do you believe is is convenient to move from this platform ? > > Regards, Rafael. > > 2015-07-22 17:21 GMT-06:00 Pak Ricard <pak...@gm...>: > >> Hi Rafael: >> >> Yes, something melted down and has been down for a few days... >> http://sourceforge.net/blog/category/sitestatus/ >> >> >> Regards, >> Ricard >> >> 2015-07-19 22:55 GMT+08:00 Rafael Chacón <raf...@gm...> >> : >> >>> Hello, >>> >>> I can not svn_checkout nor svn_commit. I seems that sourceforge.net for >>> developers is down. >>> >>> Has someone else experienced this problem? >>> >>> Best regards, Rafael. >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Web-erp-developers mailing list >>> Web...@li... >>> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >>> >>> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > -- gilberto dos santos alves +55(11)9-8646-5049 sao paulo - sp - brasil |
From: Humberto S. <we...@si...> - 2015-07-23 19:20:05
|
<html><head></head><body style="background-color: rgb(255, 255, 255); line-height: initial;"> <div style="width: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);">Mové to git</div> <div style="width: 100%; font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);"><br style="display:initial"></div> <div style="font-size: initial; font-family: Calibri, 'Slate Pro', sans-serif; color: rgb(31, 73, 125); text-align: initial; background-color: rgb(255, 255, 255);"></div> <table width="100%" style="background-color:white;border-spacing:0px;"> <tbody><tr><td colspan="2" style="font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"> <div style="border-style: solid none none; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding: 3pt 0in 0in; font-family: Tahoma, 'BB Alpha Sans', 'Slate Pro'; font-size: 10pt;"> <div><b>De: </b>Rafael Chacón</div><div><b>Enviado: </b>jueves, 23 de julio de 2015 12:57 p.m.</div><div><b>Para: </b>webERP Developers</div><div><b>Responder a: </b>webERP Developers</div><div><b>Asunto: </b>Re: [WebERP-developers] svn problems</div></div></td></tr></tbody></table><div style="border-style: solid none none; border-top-color: rgb(186, 188, 209); border-top-width: 1pt; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"></div><br><div id="_originalContent" style=""><div dir="ltr">Thanks.<div><br></div><div>Do you believe is is convenient to move from this platform ?</div><div><br></div><div>Regards, Rafael.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-07-22 17:21 GMT-06:00 Pak Ricard <span dir="ltr"><<a href="mailto:pak...@gm..." target="_blank">pak...@gm...</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Rafael:<div><br></div><div>Yes, something melted down and has been down for a few days... <a href="http://sourceforge.net/blog/category/sitestatus/" style="font-size:12.8000001907349px" target="_blank">http://sourceforge.net/blog/category/sitestatus/</a></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div>Regards,<br>Ricard</div></div> <br><div class="gmail_quote"><div><div class="h5">2015-07-19 22:55 GMT+08:00 Rafael Chacón <span dir="ltr"><<a href="mailto:raf...@gm..." target="_blank">raf...@gm...</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div>Hello,</div><div><br></div><div>I can not svn_checkout nor svn_commit. I seems that <a href="http://sourceforge.net" target="_blank">sourceforge.net</a> for developers is down.</div><div><br></div><div>Has someone else experienced this problem?</div><div><br></div><div>Best regards, Rafael.</div></div> <br></div></div><span class="">------------------------------------------------------------------------------<br> <br>_______________________________________________<br> Web-erp-developers mailing list<br> </span><a href="mailto:Web...@li..." target="_blank">Web...@li...</a><br> <a href="https://lists.sourceforge.net/lists/listinfo/web-erp-developers" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/web-erp-developers</a><br> <br></blockquote></div><br></div> <br>------------------------------------------------------------------------------<br> <br>_______________________________________________<br> Web-erp-developers mailing list<br> <a href="mailto:Web...@li...">Web...@li...</a><br> <a href="https://lists.sourceforge.net/lists/listinfo/web-erp-developers" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/web-erp-developers</a><br> <br></blockquote></div><br></div> <br><!--end of _originalContent --></div></body></html> |
From: Rafael C. <raf...@gm...> - 2015-07-23 17:56:40
|
Thanks. Do you believe is is convenient to move from this platform ? Regards, Rafael. 2015-07-22 17:21 GMT-06:00 Pak Ricard <pak...@gm...>: > Hi Rafael: > > Yes, something melted down and has been down for a few days... > http://sourceforge.net/blog/category/sitestatus/ > > > Regards, > Ricard > > 2015-07-19 22:55 GMT+08:00 Rafael Chacón <raf...@gm...>: > >> Hello, >> >> I can not svn_checkout nor svn_commit. I seems that sourceforge.net for >> developers is down. >> >> Has someone else experienced this problem? >> >> Best regards, Rafael. >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |
From: Pak R. <pak...@gm...> - 2015-07-23 09:27:13
|
Sorry Phil: I was wrong. We did the credit note and also had to delete the duplicated sales order as it showed as outstanding. I can't understand then why the DailySalesInquiry was showing the data as duplicated. Will dig in it and let you know. Regards, Ricard 2015-07-23 16:05 GMT+08:00 Phil Daintree <ph...@lo...>: > So it had been invoice twice? > > Phil > > Phil Daintree > Logic Works Ltd - +64 (0)275 567890http://www.logicworks.co.nz > > On 23/07/15 18:27, Pak Ricard wrote: > > Hi Phil: > > Understood. > > For the duplicated sales order, we just deleted it (deleted the items in > the second one), we did not a credit note. > > > Regards, > Ricard > > 2015-07-23 14:23 GMT+08:00 Phil Daintree <ph...@lo...>: > >> Well the stock movements should capture all sales and all the other >> inquiries use this table - could it be because the sale was an assembly >> item and we need to simply exclude the components that are hidden stock >> movements. The stock movements are used to print invoices so it is >> definitely possible to use them - the other snag with salesorderdetails is >> that it cannot capture credit notes. Did you do a credit note for the >> duplicated sale? >> >> Phil >> >> Phil Daintree >> Logic Works Ltd - +64 (0)275 567890http://www.logicworks.co.nz >> >> On 23/07/15 12:57, Pak Ricard wrote: >> >> Hi all: >> >> I've getting wrong results with DailySalesInquiry.php, as in an >> employee entered the same sales order twice (by error) and we cancelled it >> later on (by deleteting its items), in the DailySalesInquiry it was still >> showed as twice the sales. >> >> I changed the SQL to read salesorderdetails instead of stockmoves >> strating at line 96 >> >> $sql = "SELECT orddate AS trandate, >> SUM(unitprice*(1-discountpercent)* (qtyinvoiced)) as salesvalue, >> SUM(CASE WHEN mbflag='A' THEN 0 ELSE >> ((materialcost+labourcost+overheadcost) * qtyinvoiced) END) as cost >> FROM salesorders >> INNER JOIN salesorderdetails >> ON salesorders.orderno=salesorderdetails.orderno >> INNER JOIN stockmaster >> ON stockmaster.stockid=salesorderdetails.stkcode >> WHERE orddate>='" . $StartDateSQL . "' >> AND orddate<='" . $EndDateSQL . "'"; >> >> $sql .= " GROUP BY salesorders.orddate ORDER BY salesorders.orddate"; >> >> BTW, why did we check the sales via a table related to stock movements? >> >> Not sure if this change will seem reasonable to the community, so >> before I upload to SVN would like your votes on this. >> >> >> Regards, >> Ricard >> >> >> ------------------------------------------------------------------------------ >> >> >> >> _______________________________________________ >> Web-erp-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> > > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > Web-erp-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |
From: Phil D. <ph...@lo...> - 2015-07-23 08:06:05
|
So it had been invoice twice? Phil Phil Daintree Logic Works Ltd - +64 (0)275 567890 http://www.logicworks.co.nz On 23/07/15 18:27, Pak Ricard wrote: > Hi Phil: > > Understood. > > For the duplicated sales order, we just deleted it (deleted the items > in the second one), we did not a credit note. > > > Regards, > Ricard > > 2015-07-23 14:23 GMT+08:00 Phil Daintree <ph...@lo... > <mailto:ph...@lo...>>: > > Well the stock movements should capture all sales and all the > other inquiries use this table - could it be because the sale was > an assembly item and we need to simply exclude the components that > are hidden stock movements. The stock movements are used to print > invoices so it is definitely possible to use them - the other snag > with salesorderdetails is that it cannot capture credit notes. Did > you do a credit note for the duplicated sale? > > Phil > > Phil Daintree > Logic Works Ltd - +64 (0)275 567890 > http://www.logicworks.co.nz > > On 23/07/15 12:57, Pak Ricard wrote: >> Hi all: >> >> I've getting wrong results with DailySalesInquiry.php, as in an >> employee entered the same sales order twice (by error) and we >> cancelled it later on (by deleteting its items), in the >> DailySalesInquiry it was still showed as twice the sales. >> >> I changed the SQL to read salesorderdetails instead of stockmoves >> strating at line 96 >> >> $sql = "SELECT orddate AS trandate, >> SUM(unitprice*(1-discountpercent)* (qtyinvoiced)) as salesvalue, >> SUM(CASE WHEN mbflag='A' THEN 0 ELSE >> ((materialcost+labourcost+overheadcost) * qtyinvoiced) END) as cost >> FROM salesorders >> INNER JOIN salesorderdetails >> ON salesorders.orderno=salesorderdetails.orderno >> INNER JOIN stockmaster >> ON stockmaster.stockid=salesorderdetails.stkcode >> WHERE orddate>='" . $StartDateSQL . "' >> AND orddate<='" . $EndDateSQL . "'"; >> >> $sql .= " GROUP BY salesorders.orddate ORDER BY salesorders.orddate"; >> >> BTW, why did we check the sales via a table related to stock >> movements? >> >> Not sure if this change will seem reasonable to the community, so >> before I upload to SVN would like your votes on this. >> >> >> Regards, >> Ricard >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... <mailto:Web...@li...> >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > <mailto:Web...@li...> > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: Pak R. <pak...@gm...> - 2015-07-23 06:28:57
|
Hi Phil: Understood. For the duplicated sales order, we just deleted it (deleted the items in the second one), we did not a credit note. Regards, Ricard 2015-07-23 14:23 GMT+08:00 Phil Daintree <ph...@lo...>: > Well the stock movements should capture all sales and all the other > inquiries use this table - could it be because the sale was an assembly > item and we need to simply exclude the components that are hidden stock > movements. The stock movements are used to print invoices so it is > definitely possible to use them - the other snag with salesorderdetails is > that it cannot capture credit notes. Did you do a credit note for the > duplicated sale? > > Phil > > Phil Daintree > Logic Works Ltd - +64 (0)275 567890http://www.logicworks.co.nz > > On 23/07/15 12:57, Pak Ricard wrote: > > Hi all: > > I've getting wrong results with DailySalesInquiry.php, as in an employee > entered the same sales order twice (by error) and we cancelled it later on > (by deleteting its items), in the DailySalesInquiry it was still showed as > twice the sales. > > I changed the SQL to read salesorderdetails instead of stockmoves > strating at line 96 > > $sql = "SELECT orddate AS trandate, > SUM(unitprice*(1-discountpercent)* (qtyinvoiced)) as salesvalue, > SUM(CASE WHEN mbflag='A' THEN 0 ELSE > ((materialcost+labourcost+overheadcost) * qtyinvoiced) END) as cost > FROM salesorders > INNER JOIN salesorderdetails > ON salesorders.orderno=salesorderdetails.orderno > INNER JOIN stockmaster > ON stockmaster.stockid=salesorderdetails.stkcode > WHERE orddate>='" . $StartDateSQL . "' > AND orddate<='" . $EndDateSQL . "'"; > > $sql .= " GROUP BY salesorders.orddate ORDER BY salesorders.orddate"; > > BTW, why did we check the sales via a table related to stock movements? > > Not sure if this change will seem reasonable to the community, so before > I upload to SVN would like your votes on this. > > > Regards, > Ricard > > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > Web-erp-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |
From: Phil D. <ph...@lo...> - 2015-07-23 06:23:50
|
Well the stock movements should capture all sales and all the other inquiries use this table - could it be because the sale was an assembly item and we need to simply exclude the components that are hidden stock movements. The stock movements are used to print invoices so it is definitely possible to use them - the other snag with salesorderdetails is that it cannot capture credit notes. Did you do a credit note for the duplicated sale? Phil Phil Daintree Logic Works Ltd - +64 (0)275 567890 http://www.logicworks.co.nz On 23/07/15 12:57, Pak Ricard wrote: > Hi all: > > I've getting wrong results with DailySalesInquiry.php, as in an > employee entered the same sales order twice (by error) and we > cancelled it later on (by deleteting its items), in the > DailySalesInquiry it was still showed as twice the sales. > > I changed the SQL to read salesorderdetails instead of stockmoves > strating at line 96 > > $sql = "SELECT orddate AS trandate, > SUM(unitprice*(1-discountpercent)* (qtyinvoiced)) as salesvalue, > SUM(CASE WHEN mbflag='A' THEN 0 ELSE > ((materialcost+labourcost+overheadcost) * qtyinvoiced) END) as cost > FROM salesorders > INNER JOIN salesorderdetails > ON salesorders.orderno=salesorderdetails.orderno > INNER JOIN stockmaster > ON stockmaster.stockid=salesorderdetails.stkcode > WHERE orddate>='" . $StartDateSQL . "' > AND orddate<='" . $EndDateSQL . "'"; > > $sql .= " GROUP BY salesorders.orddate ORDER BY salesorders.orddate"; > > BTW, why did we check the sales via a table related to stock movements? > > Not sure if this change will seem reasonable to the community, so > before I upload to SVN would like your votes on this. > > > Regards, > Ricard > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: Pak R. <pak...@gm...> - 2015-07-23 01:24:59
|
Hi all: I've getting wrong results with DailySalesInquiry.php, as in an employee entered the same sales order twice (by error) and we cancelled it later on (by deleteting its items), in the DailySalesInquiry it was still showed as twice the sales. I changed the SQL to read salesorderdetails instead of stockmoves strating at line 96 $sql = "SELECT orddate AS trandate, SUM(unitprice*(1-discountpercent)* (qtyinvoiced)) as salesvalue, SUM(CASE WHEN mbflag='A' THEN 0 ELSE ((materialcost+labourcost+overheadcost) * qtyinvoiced) END) as cost FROM salesorders INNER JOIN salesorderdetails ON salesorders.orderno=salesorderdetails.orderno INNER JOIN stockmaster ON stockmaster.stockid=salesorderdetails.stkcode WHERE orddate>='" . $StartDateSQL . "' AND orddate<='" . $EndDateSQL . "'"; $sql .= " GROUP BY salesorders.orddate ORDER BY salesorders.orddate"; BTW, why did we check the sales via a table related to stock movements? Not sure if this change will seem reasonable to the community, so before I upload to SVN would like your votes on this. Regards, Ricard |
From: Pak R. <pak...@gm...> - 2015-07-22 23:22:30
|
Hi Rafael: Yes, something melted down and has been down for a few days... http://sourceforge.net/blog/category/sitestatus/ Regards, Ricard 2015-07-19 22:55 GMT+08:00 Rafael Chacón <raf...@gm...>: > Hello, > > I can not svn_checkout nor svn_commit. I seems that sourceforge.net for > developers is down. > > Has someone else experienced this problem? > > Best regards, Rafael. > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |
From: Rafael C. <raf...@gm...> - 2015-07-22 16:11:45
|
Hello, I can not svn_checkout nor svn_commit. I seems that sourceforge.net for developers is down. Has someone else experienced this problem? Best regards, Rafael. |
From: Alastair <kn...@gm...> - 2015-06-28 05:08:26
|
Ok, fair enough. Thanks for addressing the documentation issue, not the solution I was after, but I'm sure it will still be quite helpful to a number of people :) You might also want to add a note in the documentation about the session directory needing write permissions for whatever user php is running under (it's something that will probably trip up quite a few people). My regards, Alastair Knowles. On June 28, 2015 11:08:25 AM GMT+10:00, Phil Daintree <ph...@lo...> wrote: >I am not persuaded we need to change anything sorry Alistair. >I will add some words to the manual about it so it is easier for others > >following to use the functionality we already have. > >/*The path to which session files should be stored in the server - >useful for some multi-host web servers where pages are serviced using >load balancing servers - when the load picks a different server then >the >session can be lost unless this option is used - which tells the server > >explicitly where to find the session file. > It is also useful where there are several webERP installs where >the code is in two different paths on the same server and being used by > >the same client browser. It is possible in this scenario for the >session >to be over-written by the two different webERP installations. The >solution is to specify different $SessionSavePath in each installations > >config.php > > If there is only one installation of webERP on the web-server - >which can be used with many company databases (and there is no load >balancing difficulties to circumvent then this can be left commented >out >*/ > >Phil > >Phil Daintree >Logic Works Ltd - +64 (0)275 567890 >http://www.logicworks.co.nz > >On 28/06/15 12:51, Alastair wrote: >> Any thoughts as to which variant may be prefered? >> >> On June 27, 2015 8:45:25 PM GMT+10:00, Phil Daintree >> <ph...@lo...> wrote: >> >> Ah OK. >> >> Phil >> >> Phil Daintree >> Logic Works Ltd - +64 (0)275 567890 >> http://www.logicworks.co.nz >> >> On 27/06/15 18:57, Alastair Knowles wrote: >> >> Hi Phil, The session cookie path isn't actually a location on >> the server that the data is saved, nor is it a location on >the >> client to save session information, it is instead an extra >> piece of information that tells the server which URL >> subdirectory the session belongs to. Thus the session >> information is still stored in the default session store on >> the server, but also has the same piece of information so >that >> it knows it belongs to this session rather than the other. So >> in actuality, it is no less secure than the current solution >> (or even the default without the SessionSavePath variable >set) >> and still has the added benefit that it is automatically >> configured and doesn't need a folder to be created, nor does >> it need any additional values set in the config file. My >> regards, Alastair Knowles. On 27/06/15 14:04, Phil Daintree >> wrote: >> >> Hi Alistair, It is not a good plan to have the >> SessionCookie accessible to all and sundry as it contains >> private stuff... so setting the path to a place where >> people could download it is a big "NO NO" Also, this >> solution doesn't really give us anything better than what >> we had. In config.php we have //The path to which session >> files should be stored in the server - useful for some >> multi-host web servers //this can be left commented out >> //$SessionSavePath = '/tmp'; All that is needed is to >> uncomment this and set it to some private place that the >> web-server user can read and write but is not visible to >> the outside world. Phil Phil Daintree Logic Works Ltd - >> +64 (0)275 567890 http://www.logicworks.co.nz On 27/06/15 >> 12:40, Alastair Knowles wrote: >> >> Included bellow are 2 different options. The first is >> for if you wish to replace $SessionSavePath with my >> new $SessionCookiePath process (as I have now just >> dubbed it). The second is if you'd like to keep both >> the older $SessionSavePath and the newer >> $SessionCookiePath processes. Because >> $SessionCookiePath achieves the same end result as >> $SessionSavePath, I'm of the opinion that it would be >> a good idea to remove $SessionSavePath to reduce >> feature duplication. If either of you have a fairly >> strong preference of one over the other, I can >prepare >> a change.log and submit the diff through to >> sub...@we.... On the other hand, if it >makes >> it easier for you to play with, I can send both of >> them through to sub...@we... and you can >> pick which one you want to push to the svn codebase. >> Also note that you'll need to delete your current >> cookies for changes to take effect. ##### Both >> $SessionCookiePath and $SessionSavePath ##### Index: >> includes/session.inc >> >------------------------------------------------------------------------ >> --- includes/session.inc (revision 7325) +++ >> includes/session.inc (working copy) @@ -25,6 +25,10 >@@ >> session_save_path($SessionSavePath); } +if >> (!isset($SessionCookiePath)){ + >> $SessionCookiePath=$RootPath; +} + if >> (!isset($SysAdminEmail)) { $SysAdminEmail=''; } @@ >> -35,6 +39,8 @@ set_time_limit($MaximumExecutionTime); >> ini_set('max_execution_time',$MaximumExecutionTime); >} >> + +session_set_cookie_params( 0, $SessionCookiePath >); >> session_write_close(); //in case a previous session >is >> not closed session_start(); ########### Only >> $SessionCookiePath ########### Index: >> includes/session.inc >> >------------------------------------------------------------------------ >> --- includes/session.inc (revision 7325) +++ >> includes/session.inc (working copy) @@ -21,8 +21,8 @@ >> $DBType=$dbType; } -if (isset($SessionSavePath)){ - >> session_save_path($SessionSavePath); +if >> (!isset($SessionCookiePath)){ + >> $SessionCookiePath=$RootPath; } if >> (!isset($SysAdminEmail)) { @@ -35,6 +35,8 @@ >> set_time_limit($MaximumExecutionTime); >> ini_set('max_execution_time',$MaximumExecutionTime); >} >> + +session_set_cookie_params( 0, $SessionCookiePath >); >> session_write_close(); //in case a previous session >is >> not closed session_start(); My Regards, Alastair >> Knowles On 27/06/15 06:45, phil wrote: >> >> Hi Alistair If there are just a few lines to your >> solution which requires no manual editing, then >> perhaps you would send me the duffs so I could >> study. As Tim points out it is quite easy to use >> the config.php sessionssavepath to explicitly set >> where the server should save the session to. Some >> documentation as you say might be all we really >> need Alastair <kn...@gm...> wrote: Hi >> Tim, I've just looked into this a little deeper >> and it appears you're referring to >> $SessionSavePath. After a while of fiddling >around >> with this variable and manually creating folders >> for each isolated install, I was able to get this >> to work. Unfortunately this process isn't well >> documented and requires manual configuration on >> the server for this to work (not horrible, I'd >> prefer to keep manual config to a minimum). >> Perhaps, this could be simplified by setting the >> "Path" value in the session cookies instead. This >> removes the need to create folders and specify >> locations in the config file, and it can be >easily >> automated too. On a side note, the session.inc >> script should probably be setting the session >> cookie name with session_name() as PHPSESSID is >> very generic and doesn't help with debugging at >> all. My Regards, Alastair Knowles. >> >> >------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with >> OpManager! OpManager is web-based network management >> software that monitors network devices and physical & >> virtual servers, alerts via email & sms for fault. >> Monitor 25 devices for free with no restriction. >> Download now >> >http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> >------------------------------------------------------------------------ >> Web-erp-developers mailing list >> Web...@li... >> >https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with >> OpManager! OpManager is web-based network management >> software that monitors network devices and physical & >> virtual servers, alerts via email & sms for fault. >Monitor >> 25 devices for free with no restriction. Download now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> >------------------------------------------------------------------------ >> Web-erp-developers mailing list >> Web...@li... >> >https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >> >------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with >OpManager! >> OpManager is web-based network management software that >> monitors network devices and physical & virtual servers, >> alerts via email & sms for fault. Monitor 25 devices for free >> with no restriction. Download now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> >------------------------------------------------------------------------ >> Web-erp-developers mailing list >> Web...@li... >> >https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >> >> >> >------------------------------------------------------------------------ >> >> Monitor 25 >> network devices or servers for free with OpManager! >> OpManager is web-based network management software that monitors >> network devices and physical & virtual servers, alerts via email >& sms >> for fault. Monitor 25 devices for free with no restriction. >Download now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> >------------------------------------------------------------------------ >> >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >> -- >> Sent from my Android device with K-9 Mail. Please excuse my brevity. >> >> >> >------------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with OpManager! >> OpManager is web-based network management software that monitors >> network devices and physical & virtual servers, alerts via email & >sms >> for fault. Monitor 25 devices for free with no restriction. Download >now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> >> >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > >------------------------------------------------------------------------ > >------------------------------------------------------------------------------ >Monitor 25 network devices or servers for free with OpManager! >OpManager is web-based network management software that monitors >network devices and physical & virtual servers, alerts via email & sms >for fault. Monitor 25 devices for free with no restriction. Download >now >http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > >------------------------------------------------------------------------ > >_______________________________________________ >Web-erp-developers mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/web-erp-developers -- Sent from my Android device with K-9 Mail. Please excuse my brevity. |
From: Phil D. <ph...@lo...> - 2015-06-28 01:10:01
|
I am not persuaded we need to change anything sorry Alistair. I will add some words to the manual about it so it is easier for others following to use the functionality we already have. /*The path to which session files should be stored in the server - useful for some multi-host web servers where pages are serviced using load balancing servers - when the load picks a different server then the session can be lost unless this option is used - which tells the server explicitly where to find the session file. It is also useful where there are several webERP installs where the code is in two different paths on the same server and being used by the same client browser. It is possible in this scenario for the session to be over-written by the two different webERP installations. The solution is to specify different $SessionSavePath in each installations config.php If there is only one installation of webERP on the web-server - which can be used with many company databases (and there is no load balancing difficulties to circumvent then this can be left commented out */ Phil Phil Daintree Logic Works Ltd - +64 (0)275 567890 http://www.logicworks.co.nz On 28/06/15 12:51, Alastair wrote: > Any thoughts as to which variant may be prefered? > > On June 27, 2015 8:45:25 PM GMT+10:00, Phil Daintree > <ph...@lo...> wrote: > > Ah OK. > > Phil > > Phil Daintree > Logic Works Ltd - +64 (0)275 567890 > http://www.logicworks.co.nz > > On 27/06/15 18:57, Alastair Knowles wrote: > > Hi Phil, The session cookie path isn't actually a location on > the server that the data is saved, nor is it a location on the > client to save session information, it is instead an extra > piece of information that tells the server which URL > subdirectory the session belongs to. Thus the session > information is still stored in the default session store on > the server, but also has the same piece of information so that > it knows it belongs to this session rather than the other. So > in actuality, it is no less secure than the current solution > (or even the default without the SessionSavePath variable set) > and still has the added benefit that it is automatically > configured and doesn't need a folder to be created, nor does > it need any additional values set in the config file. My > regards, Alastair Knowles. On 27/06/15 14:04, Phil Daintree > wrote: > > Hi Alistair, It is not a good plan to have the > SessionCookie accessible to all and sundry as it contains > private stuff... so setting the path to a place where > people could download it is a big "NO NO" Also, this > solution doesn't really give us anything better than what > we had. In config.php we have //The path to which session > files should be stored in the server - useful for some > multi-host web servers //this can be left commented out > //$SessionSavePath = '/tmp'; All that is needed is to > uncomment this and set it to some private place that the > web-server user can read and write but is not visible to > the outside world. Phil Phil Daintree Logic Works Ltd - > +64 (0)275 567890 http://www.logicworks.co.nz On 27/06/15 > 12:40, Alastair Knowles wrote: > > Included bellow are 2 different options. The first is > for if you wish to replace $SessionSavePath with my > new $SessionCookiePath process (as I have now just > dubbed it). The second is if you'd like to keep both > the older $SessionSavePath and the newer > $SessionCookiePath processes. Because > $SessionCookiePath achieves the same end result as > $SessionSavePath, I'm of the opinion that it would be > a good idea to remove $SessionSavePath to reduce > feature duplication. If either of you have a fairly > strong preference of one over the other, I can prepare > a change.log and submit the diff through to > sub...@we.... On the other hand, if it makes > it easier for you to play with, I can send both of > them through to sub...@we... and you can > pick which one you want to push to the svn codebase. > Also note that you'll need to delete your current > cookies for changes to take effect. ##### Both > $SessionCookiePath and $SessionSavePath ##### Index: > includes/session.inc > ------------------------------------------------------------------------ > --- includes/session.inc (revision 7325) +++ > includes/session.inc (working copy) @@ -25,6 +25,10 @@ > session_save_path($SessionSavePath); } +if > (!isset($SessionCookiePath)){ + > $SessionCookiePath=$RootPath; +} + if > (!isset($SysAdminEmail)) { $SysAdminEmail=''; } @@ > -35,6 +39,8 @@ set_time_limit($MaximumExecutionTime); > ini_set('max_execution_time',$MaximumExecutionTime); } > + +session_set_cookie_params( 0, $SessionCookiePath ); > session_write_close(); //in case a previous session is > not closed session_start(); ########### Only > $SessionCookiePath ########### Index: > includes/session.inc > ------------------------------------------------------------------------ > --- includes/session.inc (revision 7325) +++ > includes/session.inc (working copy) @@ -21,8 +21,8 @@ > $DBType=$dbType; } -if (isset($SessionSavePath)){ - > session_save_path($SessionSavePath); +if > (!isset($SessionCookiePath)){ + > $SessionCookiePath=$RootPath; } if > (!isset($SysAdminEmail)) { @@ -35,6 +35,8 @@ > set_time_limit($MaximumExecutionTime); > ini_set('max_execution_time',$MaximumExecutionTime); } > + +session_set_cookie_params( 0, $SessionCookiePath ); > session_write_close(); //in case a previous session is > not closed session_start(); My Regards, Alastair > Knowles On 27/06/15 06:45, phil wrote: > > Hi Alistair If there are just a few lines to your > solution which requires no manual editing, then > perhaps you would send me the duffs so I could > study. As Tim points out it is quite easy to use > the config.php sessionssavepath to explicitly set > where the server should save the session to. Some > documentation as you say might be all we really > need Alastair <kn...@gm...> wrote: Hi > Tim, I've just looked into this a little deeper > and it appears you're referring to > $SessionSavePath. After a while of fiddling around > with this variable and manually creating folders > for each isolated install, I was able to get this > to work. Unfortunately this process isn't well > documented and requires manual configuration on > the server for this to work (not horrible, I'd > prefer to keep manual config to a minimum). > Perhaps, this could be simplified by setting the > "Path" value in the session cookies instead. This > removes the need to create folders and specify > locations in the config file, and it can be easily > automated too. On a side note, the session.inc > script should probably be setting the session > cookie name with session_name() as PHPSESSID is > very generic and doesn't help with debugging at > all. My Regards, Alastair Knowles. > > ------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with > OpManager! OpManager is web-based network management > software that monitors network devices and physical & > virtual servers, alerts via email & sms for fault. > Monitor 25 devices for free with no restriction. > Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > ------------------------------------------------------------------------ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > ------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with > OpManager! OpManager is web-based network management > software that monitors network devices and physical & > virtual servers, alerts via email & sms for fault. Monitor > 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > ------------------------------------------------------------------------ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > ------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that > monitors network devices and physical & virtual servers, > alerts via email & sms for fault. Monitor 25 devices for free > with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > ------------------------------------------------------------------------ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > ------------------------------------------------------------------------ > > Monitor 25 > network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > ------------------------------------------------------------------------ > > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > -- > Sent from my Android device with K-9 Mail. Please excuse my brevity. > > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > > > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: Alastair <kn...@gm...> - 2015-06-28 00:51:58
|
Any thoughts as to which variant may be prefered? On June 27, 2015 8:45:25 PM GMT+10:00, Phil Daintree <ph...@lo...> wrote: >Ah OK. > >Phil > >Phil Daintree >Logic Works Ltd - +64 (0)275 567890 >http://www.logicworks.co.nz > >On 27/06/15 18:57, Alastair Knowles wrote: >> Hi Phil, >> >> The session cookie path isn't actually a location on the server that >the >> data is saved, nor is it a location on the client to save session >> information, it is instead an extra piece of information that tells >the >> server which URL subdirectory the session belongs to. Thus the >session >> information is still stored in the default session store on the >server, >> but also has the same piece of information so that it knows it >belongs >> to this session rather than the other. So in actuality, it is no less >> secure than the current solution (or even the default without the >> SessionSavePath variable set) and still has the added benefit that it >is >> automatically configured and doesn't need a folder to be created, nor >> does it need any additional values set in the config file. >> >> My regards, >> Alastair Knowles. >> >> On 27/06/15 14:04, Phil Daintree wrote: >>> Hi Alistair, >>> >>> It is not a good plan to have the SessionCookie accessible to all >and >>> sundry as it contains private stuff... so setting the path to a >place >>> where people could download it is a big "NO NO" >>> >>> Also, this solution doesn't really give us anything better than what >we had. >>> >>> In config.php we have >>> >>> //The path to which session files should be stored in the server - >>> useful for some multi-host web servers >>> //this can be left commented out >>> //$SessionSavePath = '/tmp'; >>> >>> All that is needed is to uncomment this and set it to some private >place >>> that the web-server user can read and write but is not visible to >the >>> outside world. >>> >>> >>> Phil >>> >>> Phil Daintree >>> Logic Works Ltd - +64 (0)275 567890 >>> http://www.logicworks.co.nz >>> >>> On 27/06/15 12:40, Alastair Knowles wrote: >>>> Included bellow are 2 different options. >>>> The first is for if you wish to replace $SessionSavePath with my >new >>>> $SessionCookiePath process (as I have now just dubbed it). The >second is >>>> if you'd like to keep both the older $SessionSavePath and the newer >>>> $SessionCookiePath processes. Because $SessionCookiePath achieves >the >>>> same end result as $SessionSavePath, I'm of the opinion that it >would be >>>> a good idea to remove $SessionSavePath to reduce feature >duplication. >>>> >>>> If either of you have a fairly strong preference of one over the >other, >>>> I can prepare a change.log and submit the diff through to >>>> sub...@we.... On the other hand, if it makes it easier >for you >>>> to play with, I can send both of them through to >sub...@we... >>>> and you can pick which one you want to push to the svn codebase. >>>> >>>> Also note that you'll need to delete your current cookies for >changes to >>>> take effect. >>>> >>>> ##### Both $SessionCookiePath and $SessionSavePath ##### >>>> >>>> Index: includes/session.inc >>>> =================================================================== >>>> --- includes/session.inc (revision 7325) >>>> +++ includes/session.inc (working copy) >>>> @@ -25,6 +25,10 @@ >>>> session_save_path($SessionSavePath); >>>> } >>>> >>>> +if (!isset($SessionCookiePath)){ >>>> + $SessionCookiePath=$RootPath; >>>> +} >>>> + >>>> if (!isset($SysAdminEmail)) { >>>> $SysAdminEmail=''; >>>> } >>>> @@ -35,6 +39,8 @@ >>>> set_time_limit($MaximumExecutionTime); >>>> ini_set('max_execution_time',$MaximumExecutionTime); >>>> } >>>> + >>>> +session_set_cookie_params( 0, $SessionCookiePath ); >>>> session_write_close(); //in case a previous session is not >closed >>>> session_start(); >>>> >>>> ########### Only $SessionCookiePath ########### >>>> >>>> Index: includes/session.inc >>>> =================================================================== >>>> --- includes/session.inc (revision 7325) >>>> +++ includes/session.inc (working copy) >>>> @@ -21,8 +21,8 @@ >>>> $DBType=$dbType; >>>> } >>>> >>>> -if (isset($SessionSavePath)){ >>>> - session_save_path($SessionSavePath); >>>> +if (!isset($SessionCookiePath)){ >>>> + $SessionCookiePath=$RootPath; >>>> } >>>> >>>> if (!isset($SysAdminEmail)) { >>>> @@ -35,6 +35,8 @@ >>>> set_time_limit($MaximumExecutionTime); >>>> ini_set('max_execution_time',$MaximumExecutionTime); >>>> } >>>> + >>>> +session_set_cookie_params( 0, $SessionCookiePath ); >>>> session_write_close(); //in case a previous session is not >closed >>>> session_start(); >>>> >>>> My Regards, >>>> Alastair Knowles >>>> >>>> On 27/06/15 06:45, phil wrote: >>>>> Hi Alistair >>>>> If there are just a few lines to your solution which requires no >>>>> manual editing, then perhaps you would send me the duffs so I >could >>>>> study. As Tim points out it is quite easy to use the config.php >>>>> sessionssavepath to explicitly set where the server should save >the >>>>> session to. Some documentation as you say might be all we really >need >>>>> >>>>> Alastair <kn...@gm...> wrote: >>>>> >>>>> Hi Tim, >>>>> >>>>> I've just looked into this a little deeper and it appears you're >>>>> referring to $SessionSavePath. After a while of fiddling around >with >>>>> this variable and manually creating folders for each isolated >install, >>>>> I was able to get this to work. Unfortunately this process isn't >well >>>>> documented and requires manual configuration on the server for >this to >>>>> work (not horrible, I'd prefer to keep manual config to a >minimum). >>>>> >>>>> Perhaps, this could be simplified by setting the "Path" value in >the >>>>> session cookies instead. This removes the need to create folders >and >>>>> specify locations in the config file, and it can be easily >automated too. >>>>> >>>>> On a side note, the session.inc script should probably be setting >the >>>>> session cookie name with session_name() as PHPSESSID is very >generic >>>>> and doesn't help with debugging at all. >>>>> >>>>> My Regards, >>>>> Alastair Knowles. >>>> >------------------------------------------------------------------------------ >>>> Monitor 25 network devices or servers for free with OpManager! >>>> OpManager is web-based network management software that monitors >>>> network devices and physical & virtual servers, alerts via email & >sms >>>> for fault. Monitor 25 devices for free with no restriction. >Download now >>>> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >>>> _______________________________________________ >>>> Web-erp-developers mailing list >>>> Web...@li... >>>> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >>>> >>> >------------------------------------------------------------------------------ >>> Monitor 25 network devices or servers for free with OpManager! >>> OpManager is web-based network management software that monitors >>> network devices and physical & virtual servers, alerts via email & >sms >>> for fault. Monitor 25 devices for free with no restriction. Download >now >>> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >>> _______________________________________________ >>> Web-erp-developers mailing list >>> Web...@li... >>> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >------------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with OpManager! >> OpManager is web-based network management software that monitors >> network devices and physical & virtual servers, alerts via email & >sms >> for fault. Monitor 25 devices for free with no restriction. Download >now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> > > >------------------------------------------------------------------------------ >Monitor 25 network devices or servers for free with OpManager! >OpManager is web-based network management software that monitors >network devices and physical & virtual servers, alerts via email & sms >for fault. Monitor 25 devices for free with no restriction. Download >now >http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >_______________________________________________ >Web-erp-developers mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/web-erp-developers -- Sent from my Android device with K-9 Mail. Please excuse my brevity. |
From: Phil D. <ph...@lo...> - 2015-06-27 10:47:00
|
Ah OK. Phil Phil Daintree Logic Works Ltd - +64 (0)275 567890 http://www.logicworks.co.nz On 27/06/15 18:57, Alastair Knowles wrote: > Hi Phil, > > The session cookie path isn't actually a location on the server that the > data is saved, nor is it a location on the client to save session > information, it is instead an extra piece of information that tells the > server which URL subdirectory the session belongs to. Thus the session > information is still stored in the default session store on the server, > but also has the same piece of information so that it knows it belongs > to this session rather than the other. So in actuality, it is no less > secure than the current solution (or even the default without the > SessionSavePath variable set) and still has the added benefit that it is > automatically configured and doesn't need a folder to be created, nor > does it need any additional values set in the config file. > > My regards, > Alastair Knowles. > > On 27/06/15 14:04, Phil Daintree wrote: >> Hi Alistair, >> >> It is not a good plan to have the SessionCookie accessible to all and >> sundry as it contains private stuff... so setting the path to a place >> where people could download it is a big "NO NO" >> >> Also, this solution doesn't really give us anything better than what we had. >> >> In config.php we have >> >> //The path to which session files should be stored in the server - >> useful for some multi-host web servers >> //this can be left commented out >> //$SessionSavePath = '/tmp'; >> >> All that is needed is to uncomment this and set it to some private place >> that the web-server user can read and write but is not visible to the >> outside world. >> >> >> Phil >> >> Phil Daintree >> Logic Works Ltd - +64 (0)275 567890 >> http://www.logicworks.co.nz >> >> On 27/06/15 12:40, Alastair Knowles wrote: >>> Included bellow are 2 different options. >>> The first is for if you wish to replace $SessionSavePath with my new >>> $SessionCookiePath process (as I have now just dubbed it). The second is >>> if you'd like to keep both the older $SessionSavePath and the newer >>> $SessionCookiePath processes. Because $SessionCookiePath achieves the >>> same end result as $SessionSavePath, I'm of the opinion that it would be >>> a good idea to remove $SessionSavePath to reduce feature duplication. >>> >>> If either of you have a fairly strong preference of one over the other, >>> I can prepare a change.log and submit the diff through to >>> sub...@we.... On the other hand, if it makes it easier for you >>> to play with, I can send both of them through to sub...@we... >>> and you can pick which one you want to push to the svn codebase. >>> >>> Also note that you'll need to delete your current cookies for changes to >>> take effect. >>> >>> ##### Both $SessionCookiePath and $SessionSavePath ##### >>> >>> Index: includes/session.inc >>> =================================================================== >>> --- includes/session.inc (revision 7325) >>> +++ includes/session.inc (working copy) >>> @@ -25,6 +25,10 @@ >>> session_save_path($SessionSavePath); >>> } >>> >>> +if (!isset($SessionCookiePath)){ >>> + $SessionCookiePath=$RootPath; >>> +} >>> + >>> if (!isset($SysAdminEmail)) { >>> $SysAdminEmail=''; >>> } >>> @@ -35,6 +39,8 @@ >>> set_time_limit($MaximumExecutionTime); >>> ini_set('max_execution_time',$MaximumExecutionTime); >>> } >>> + >>> +session_set_cookie_params( 0, $SessionCookiePath ); >>> session_write_close(); //in case a previous session is not closed >>> session_start(); >>> >>> ########### Only $SessionCookiePath ########### >>> >>> Index: includes/session.inc >>> =================================================================== >>> --- includes/session.inc (revision 7325) >>> +++ includes/session.inc (working copy) >>> @@ -21,8 +21,8 @@ >>> $DBType=$dbType; >>> } >>> >>> -if (isset($SessionSavePath)){ >>> - session_save_path($SessionSavePath); >>> +if (!isset($SessionCookiePath)){ >>> + $SessionCookiePath=$RootPath; >>> } >>> >>> if (!isset($SysAdminEmail)) { >>> @@ -35,6 +35,8 @@ >>> set_time_limit($MaximumExecutionTime); >>> ini_set('max_execution_time',$MaximumExecutionTime); >>> } >>> + >>> +session_set_cookie_params( 0, $SessionCookiePath ); >>> session_write_close(); //in case a previous session is not closed >>> session_start(); >>> >>> My Regards, >>> Alastair Knowles >>> >>> On 27/06/15 06:45, phil wrote: >>>> Hi Alistair >>>> If there are just a few lines to your solution which requires no >>>> manual editing, then perhaps you would send me the duffs so I could >>>> study. As Tim points out it is quite easy to use the config.php >>>> sessionssavepath to explicitly set where the server should save the >>>> session to. Some documentation as you say might be all we really need >>>> >>>> Alastair <kn...@gm...> wrote: >>>> >>>> Hi Tim, >>>> >>>> I've just looked into this a little deeper and it appears you're >>>> referring to $SessionSavePath. After a while of fiddling around with >>>> this variable and manually creating folders for each isolated install, >>>> I was able to get this to work. Unfortunately this process isn't well >>>> documented and requires manual configuration on the server for this to >>>> work (not horrible, I'd prefer to keep manual config to a minimum). >>>> >>>> Perhaps, this could be simplified by setting the "Path" value in the >>>> session cookies instead. This removes the need to create folders and >>>> specify locations in the config file, and it can be easily automated too. >>>> >>>> On a side note, the session.inc script should probably be setting the >>>> session cookie name with session_name() as PHPSESSID is very generic >>>> and doesn't help with debugging at all. >>>> >>>> My Regards, >>>> Alastair Knowles. >>> ------------------------------------------------------------------------------ >>> Monitor 25 network devices or servers for free with OpManager! >>> OpManager is web-based network management software that monitors >>> network devices and physical & virtual servers, alerts via email & sms >>> for fault. Monitor 25 devices for free with no restriction. Download now >>> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >>> _______________________________________________ >>> Web-erp-developers mailing list >>> Web...@li... >>> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >>> >> ------------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with OpManager! >> OpManager is web-based network management software that monitors >> network devices and physical & virtual servers, alerts via email & sms >> for fault. Monitor 25 devices for free with no restriction. Download now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > |
From: Alastair K. <kn...@gm...> - 2015-06-27 06:56:24
|
Hi Phil, The session cookie path isn't actually a location on the server that the data is saved, nor is it a location on the client to save session information, it is instead an extra piece of information that tells the server which URL subdirectory the session belongs to. Thus the session information is still stored in the default session store on the server, but also has the same piece of information so that it knows it belongs to this session rather than the other. So in actuality, it is no less secure than the current solution (or even the default without the SessionSavePath variable set) and still has the added benefit that it is automatically configured and doesn't need a folder to be created, nor does it need any additional values set in the config file. My regards, Alastair Knowles. On 27/06/15 14:04, Phil Daintree wrote: > Hi Alistair, > > It is not a good plan to have the SessionCookie accessible to all and > sundry as it contains private stuff... so setting the path to a place > where people could download it is a big "NO NO" > > Also, this solution doesn't really give us anything better than what we had. > > In config.php we have > > //The path to which session files should be stored in the server - > useful for some multi-host web servers > //this can be left commented out > //$SessionSavePath = '/tmp'; > > All that is needed is to uncomment this and set it to some private place > that the web-server user can read and write but is not visible to the > outside world. > > > Phil > > Phil Daintree > Logic Works Ltd - +64 (0)275 567890 > http://www.logicworks.co.nz > > On 27/06/15 12:40, Alastair Knowles wrote: >> Included bellow are 2 different options. >> The first is for if you wish to replace $SessionSavePath with my new >> $SessionCookiePath process (as I have now just dubbed it). The second is >> if you'd like to keep both the older $SessionSavePath and the newer >> $SessionCookiePath processes. Because $SessionCookiePath achieves the >> same end result as $SessionSavePath, I'm of the opinion that it would be >> a good idea to remove $SessionSavePath to reduce feature duplication. >> >> If either of you have a fairly strong preference of one over the other, >> I can prepare a change.log and submit the diff through to >> sub...@we.... On the other hand, if it makes it easier for you >> to play with, I can send both of them through to sub...@we... >> and you can pick which one you want to push to the svn codebase. >> >> Also note that you'll need to delete your current cookies for changes to >> take effect. >> >> ##### Both $SessionCookiePath and $SessionSavePath ##### >> >> Index: includes/session.inc >> =================================================================== >> --- includes/session.inc (revision 7325) >> +++ includes/session.inc (working copy) >> @@ -25,6 +25,10 @@ >> session_save_path($SessionSavePath); >> } >> >> +if (!isset($SessionCookiePath)){ >> + $SessionCookiePath=$RootPath; >> +} >> + >> if (!isset($SysAdminEmail)) { >> $SysAdminEmail=''; >> } >> @@ -35,6 +39,8 @@ >> set_time_limit($MaximumExecutionTime); >> ini_set('max_execution_time',$MaximumExecutionTime); >> } >> + >> +session_set_cookie_params( 0, $SessionCookiePath ); >> session_write_close(); //in case a previous session is not closed >> session_start(); >> >> ########### Only $SessionCookiePath ########### >> >> Index: includes/session.inc >> =================================================================== >> --- includes/session.inc (revision 7325) >> +++ includes/session.inc (working copy) >> @@ -21,8 +21,8 @@ >> $DBType=$dbType; >> } >> >> -if (isset($SessionSavePath)){ >> - session_save_path($SessionSavePath); >> +if (!isset($SessionCookiePath)){ >> + $SessionCookiePath=$RootPath; >> } >> >> if (!isset($SysAdminEmail)) { >> @@ -35,6 +35,8 @@ >> set_time_limit($MaximumExecutionTime); >> ini_set('max_execution_time',$MaximumExecutionTime); >> } >> + >> +session_set_cookie_params( 0, $SessionCookiePath ); >> session_write_close(); //in case a previous session is not closed >> session_start(); >> >> My Regards, >> Alastair Knowles >> >> On 27/06/15 06:45, phil wrote: >>> Hi Alistair >>> If there are just a few lines to your solution which requires no >>> manual editing, then perhaps you would send me the duffs so I could >>> study. As Tim points out it is quite easy to use the config.php >>> sessionssavepath to explicitly set where the server should save the >>> session to. Some documentation as you say might be all we really need >>> >>> Alastair <kn...@gm...> wrote: >>> >>> Hi Tim, >>> >>> I've just looked into this a little deeper and it appears you're >>> referring to $SessionSavePath. After a while of fiddling around with >>> this variable and manually creating folders for each isolated install, >>> I was able to get this to work. Unfortunately this process isn't well >>> documented and requires manual configuration on the server for this to >>> work (not horrible, I'd prefer to keep manual config to a minimum). >>> >>> Perhaps, this could be simplified by setting the "Path" value in the >>> session cookies instead. This removes the need to create folders and >>> specify locations in the config file, and it can be easily automated too. >>> >>> On a side note, the session.inc script should probably be setting the >>> session cookie name with session_name() as PHPSESSID is very generic >>> and doesn't help with debugging at all. >>> >>> My Regards, >>> Alastair Knowles. >> ------------------------------------------------------------------------------ >> Monitor 25 network devices or servers for free with OpManager! >> OpManager is web-based network management software that monitors >> network devices and physical & virtual servers, alerts via email & sms >> for fault. Monitor 25 devices for free with no restriction. Download now >> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o >> _______________________________________________ >> Web-erp-developers mailing list >> Web...@li... >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers |
From: Phil D. <ph...@lo...> - 2015-06-27 04:06:00
|
Hi Alistair, It is not a good plan to have the SessionCookie accessible to all and sundry as it contains private stuff... so setting the path to a place where people could download it is a big "NO NO" Also, this solution doesn't really give us anything better than what we had. In config.php we have //The path to which session files should be stored in the server - useful for some multi-host web servers //this can be left commented out //$SessionSavePath = '/tmp'; All that is needed is to uncomment this and set it to some private place that the web-server user can read and write but is not visible to the outside world. Phil Phil Daintree Logic Works Ltd - +64 (0)275 567890 http://www.logicworks.co.nz On 27/06/15 12:40, Alastair Knowles wrote: > Included bellow are 2 different options. > The first is for if you wish to replace $SessionSavePath with my new > $SessionCookiePath process (as I have now just dubbed it). The second is > if you'd like to keep both the older $SessionSavePath and the newer > $SessionCookiePath processes. Because $SessionCookiePath achieves the > same end result as $SessionSavePath, I'm of the opinion that it would be > a good idea to remove $SessionSavePath to reduce feature duplication. > > If either of you have a fairly strong preference of one over the other, > I can prepare a change.log and submit the diff through to > sub...@we.... On the other hand, if it makes it easier for you > to play with, I can send both of them through to sub...@we... > and you can pick which one you want to push to the svn codebase. > > Also note that you'll need to delete your current cookies for changes to > take effect. > > ##### Both $SessionCookiePath and $SessionSavePath ##### > > Index: includes/session.inc > =================================================================== > --- includes/session.inc (revision 7325) > +++ includes/session.inc (working copy) > @@ -25,6 +25,10 @@ > session_save_path($SessionSavePath); > } > > +if (!isset($SessionCookiePath)){ > + $SessionCookiePath=$RootPath; > +} > + > if (!isset($SysAdminEmail)) { > $SysAdminEmail=''; > } > @@ -35,6 +39,8 @@ > set_time_limit($MaximumExecutionTime); > ini_set('max_execution_time',$MaximumExecutionTime); > } > + > +session_set_cookie_params( 0, $SessionCookiePath ); > session_write_close(); //in case a previous session is not closed > session_start(); > > ########### Only $SessionCookiePath ########### > > Index: includes/session.inc > =================================================================== > --- includes/session.inc (revision 7325) > +++ includes/session.inc (working copy) > @@ -21,8 +21,8 @@ > $DBType=$dbType; > } > > -if (isset($SessionSavePath)){ > - session_save_path($SessionSavePath); > +if (!isset($SessionCookiePath)){ > + $SessionCookiePath=$RootPath; > } > > if (!isset($SysAdminEmail)) { > @@ -35,6 +35,8 @@ > set_time_limit($MaximumExecutionTime); > ini_set('max_execution_time',$MaximumExecutionTime); > } > + > +session_set_cookie_params( 0, $SessionCookiePath ); > session_write_close(); //in case a previous session is not closed > session_start(); > > My Regards, > Alastair Knowles > > On 27/06/15 06:45, phil wrote: >> Hi Alistair >> If there are just a few lines to your solution which requires no >> manual editing, then perhaps you would send me the duffs so I could >> study. As Tim points out it is quite easy to use the config.php >> sessionssavepath to explicitly set where the server should save the >> session to. Some documentation as you say might be all we really need >> >> Alastair <kn...@gm...> wrote: >> >> Hi Tim, >> >> I've just looked into this a little deeper and it appears you're >> referring to $SessionSavePath. After a while of fiddling around with >> this variable and manually creating folders for each isolated install, >> I was able to get this to work. Unfortunately this process isn't well >> documented and requires manual configuration on the server for this to >> work (not horrible, I'd prefer to keep manual config to a minimum). >> >> Perhaps, this could be simplified by setting the "Path" value in the >> session cookies instead. This removes the need to create folders and >> specify locations in the config file, and it can be easily automated too. >> >> On a side note, the session.inc script should probably be setting the >> session cookie name with session_name() as PHPSESSID is very generic >> and doesn't help with debugging at all. >> >> My Regards, >> Alastair Knowles. > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > |
From: Alastair K. <kn...@gm...> - 2015-06-27 00:39:47
|
Included bellow are 2 different options. The first is for if you wish to replace $SessionSavePath with my new $SessionCookiePath process (as I have now just dubbed it). The second is if you'd like to keep both the older $SessionSavePath and the newer $SessionCookiePath processes. Because $SessionCookiePath achieves the same end result as $SessionSavePath, I'm of the opinion that it would be a good idea to remove $SessionSavePath to reduce feature duplication. If either of you have a fairly strong preference of one over the other, I can prepare a change.log and submit the diff through to sub...@we.... On the other hand, if it makes it easier for you to play with, I can send both of them through to sub...@we... and you can pick which one you want to push to the svn codebase. Also note that you'll need to delete your current cookies for changes to take effect. ##### Both $SessionCookiePath and $SessionSavePath ##### Index: includes/session.inc =================================================================== --- includes/session.inc (revision 7325) +++ includes/session.inc (working copy) @@ -25,6 +25,10 @@ session_save_path($SessionSavePath); } +if (!isset($SessionCookiePath)){ + $SessionCookiePath=$RootPath; +} + if (!isset($SysAdminEmail)) { $SysAdminEmail=''; } @@ -35,6 +39,8 @@ set_time_limit($MaximumExecutionTime); ini_set('max_execution_time',$MaximumExecutionTime); } + +session_set_cookie_params( 0, $SessionCookiePath ); session_write_close(); //in case a previous session is not closed session_start(); ########### Only $SessionCookiePath ########### Index: includes/session.inc =================================================================== --- includes/session.inc (revision 7325) +++ includes/session.inc (working copy) @@ -21,8 +21,8 @@ $DBType=$dbType; } -if (isset($SessionSavePath)){ - session_save_path($SessionSavePath); +if (!isset($SessionCookiePath)){ + $SessionCookiePath=$RootPath; } if (!isset($SysAdminEmail)) { @@ -35,6 +35,8 @@ set_time_limit($MaximumExecutionTime); ini_set('max_execution_time',$MaximumExecutionTime); } + +session_set_cookie_params( 0, $SessionCookiePath ); session_write_close(); //in case a previous session is not closed session_start(); My Regards, Alastair Knowles On 27/06/15 06:45, phil wrote: > Hi Alistair > If there are just a few lines to your solution which requires no > manual editing, then perhaps you would send me the duffs so I could > study. As Tim points out it is quite easy to use the config.php > sessionssavepath to explicitly set where the server should save the > session to. Some documentation as you say might be all we really need > > Alastair <kn...@gm...> wrote: > > Hi Tim, > > I've just looked into this a little deeper and it appears you're > referring to $SessionSavePath. After a while of fiddling around with > this variable and manually creating folders for each isolated install, > I was able to get this to work. Unfortunately this process isn't well > documented and requires manual configuration on the server for this to > work (not horrible, I'd prefer to keep manual config to a minimum). > > Perhaps, this could be simplified by setting the "Path" value in the > session cookies instead. This removes the need to create folders and > specify locations in the config file, and it can be easily automated too. > > On a side note, the session.inc script should probably be setting the > session cookie name with session_name() as PHPSESSID is very generic > and doesn't help with debugging at all. > > My Regards, > Alastair Knowles. |