Blesta Addons Posted July 5, 2015 Report Share Posted July 5, 2015 Hello All ,i will start in coding Quotes System plugin for the community , and i need some ideas feedbacks .1 - Why Quotes System ?Quotes is something related to the productivite and add a plus for the admins , also all the big companies use it , also some companies that offer services (design, coding, mobile APP.... ) with hourly rate (like me) , and need every time send a qoute to the clients then the client accept we creat a invoice for them . i want to make this step as easy as possible .2 - How much cost this new plugin ?Is totally Free , but if you consider it worth , you can donate for it .3 - Where expected to be released ?first we need to make a simple Quotes system that do the trick , then we will extend it to do more functionality and task and maybe automated task , so the simple thing we begin with it the near future date is released .4 - what i have a TODO list ?i have 2 TODO list , one if for the first release , and second is for next released versions .i will group ideas based in the easy implementation and the basic feature.TODO list 1 :- Admins can add/edit/delete Quotes .(i'm not sure if i use close instead of delete)- Create Quote for the client .- Client can view Quote from the client panel .- Cleint can accept or reject the Quote .- Admins convert accepted Quote to invoice not needed , as the system convert it auto .- client can view the quotes assigned to them (accepted or closed or rejected or expired)TODO list 2 :- cronjob to convert a accepted quote to invoice .- Clients can receive the quote via email as PDF , they can also download it as PDF. (implemented)- Comments both for client and staff under the qoute (threaded reply/conversation).- Devide Quote in two invoice after accept (for prepayment ,and after final work) - Create Quote for non clients , they can view it with a unique url .- Store Client info in the quotes for history .That is all .any one has an idea to implement it , i will add it to my one of TODO list . bunny, Paul, S.H. and 5 others 8 Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 5, 2015 Author Report Share Posted July 5, 2015 so to not lose time, the quote status will have 'open','accepted','dead','closed' . 'open', for new quotes 'accepted', when client accept the quote 'dead', when the quote is expired 'closed' when the quote is rejected or closed by admins . i don't know if better to add a new status for rejected and Delivered status . what i prefer if to ad new status for rejected , and add new row for Delivered , but this will be in the >TODO list 2 when i add the option to send the quote via email . a.daniello 1 Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 5, 2015 Author Report Share Posted July 5, 2015 this is the mysql shema that i will use , any correction ? $this->Record-> setField("id", array('type'=>"int", 'size'=>10, 'unsigned'=>true, 'auto_increment'=>true))-> setField("subject", array('type'=>"varchar", 'size'=>255))-> setField("client_id", array('type'=>"int", 'size'=>10, 'unsigned'=>true, 'is_null'=>true, 'default'=>null))-> setField("date_added", array('type'=>"datetime"))-> setField("date_valid", array('type'=>"datetime"))-> setField("date_closed", array('type'=>"datetime", 'is_null'=>true, 'default'=>null))-> setField("active", array('type'=>"int", 'size'=>10, 'default'=>1))-> setField("company_id", array('type'=>"int", 'size'=>10, 'unsigned'=>true))-> setField("currency", array('type'=>"varchar", 'size'=>3, 'default'=>'USD'))-> setField("status", array('type'=>"enum", 'size'=>"'open','accepted','dead','closed'", 'default'=>"open"))-> setField("note_public", array('type'=>"mediumtext"))-> setField("note_private", array('type'=>"mediumtext"))-> setKey(array("id"), "primary")-> setKey(array("company_id"), "index")-> setKey(array("date_added", "status"), "index")-> create("nh_quotes", true); // Quotes Lines $this->Record-> setField("id", array('type'=>"int", 'size'=>10, 'unsigned'=>true, 'auto_increment'=>true))-> setField("quote_id", array('type'=>"int", 'size'=>10, 'unsigned'=>true))-> setField("description", array('type'=>"mediumtext"))-> setField("qty", array('type'=>"decimal", 'size'=> (12,4), 'default'=>"1.0000"))-> setField("amount", array('type'=>"decimal", 'size'=> (12,4), 'default'=>"0.0000"))-> setKey(array("id"), "primary")-> setKey(array("quote_id"), "index")-> create("nh_quotes_lines", true); Quote Link to comment Share on other sites More sharing options...
Joseph H Posted July 5, 2015 Report Share Posted July 5, 2015 As for whether to use delete or close. I would suggest to go with both, but closed Quotes can be later reopened, but We should also be able to completely delete Quotes. Would be nice If a Client had the ability to share Quote via Email to non registered Member who can then view it via a unique link and comment as well. Thanks @Naja Quote Link to comment Share on other sites More sharing options...
Adam Posted July 5, 2015 Report Share Posted July 5, 2015 this is the mysql shema that i will use , any correction ? $this->Record-> setField("id", array('type'=>"int", 'size'=>10, 'unsigned'=>true, 'auto_increment'=>true))-> setField("subject", array('type'=>"varchar", 'size'=>255))-> setField("client_id", array('type'=>"int", 'size'=>10, 'unsigned'=>true, 'is_null'=>true, 'default'=>null))-> Why is client_id not required? How do you plan on sending quotes to clients who do not exist within the system? I understand quotes are not invoices, but when you create a quote, you already have a client in mind (at least their name, company, email address, etc). Might be better, and easier, if every quote you created was associated with some client. It would make garbage collection easier -- no orphaned records, etc. setField("date_added", array('type'=>"datetime"))-> setField("date_valid", array('type'=>"datetime"))-> setField("date_closed", array('type'=>"datetime", 'is_null'=>true, 'default'=>null))-> setField("active", array('type'=>"int", 'size'=>10, 'default'=>1))-> setField("company_id", array('type'=>"int", 'size'=>10, 'unsigned'=>true))-> setField("currency", array('type'=>"varchar", 'size'=>3, 'default'=>'USD'))-> setField("status", array('type'=>"enum", 'size'=>"'open','accepted','dead','closed'", 'default'=>"open"))-> What is the difference between status column and activate? For example, how can a quote be activate but "dead." Or inactivate but open? Seems like you these two fields should be normalized (merged). setField("note_public", array('type'=>"mediumtext"))-> setField("note_private", array('type'=>"mediumtext"))-> setKey(array("id"), "primary")-> setKey(array("company_id"), "index")-> setKey(array("date_added", "status"), "index")-> create("nh_quotes", true); // Quotes Lines $this->Record-> setField("id", array('type'=>"int", 'size'=>10, 'unsigned'=>true, 'auto_increment'=>true))-> setField("quote_id", array('type'=>"int", 'size'=>10, 'unsigned'=>true))-> setField("description", array('type'=>"mediumtext"))-> setField("qty", array('type'=>"decimal", 'size'=> (12,4), 'default'=>"1.0000"))-> setField("amount", array('type'=>"decimal", 'size'=> (12,4), 'default'=>"0.0000"))-> setKey(array("id"), "primary")-> setKey(array("quote_id"), "index")-> create("nh_quotes_lines", true); Other then that, looks good. -Adam Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 5, 2015 Author Report Share Posted July 5, 2015 Why is client_id not required? How do you plan on sending quotes to clients who do not exist within the system? I understand quotes are not invoices, but when you create a quote, you already have a client in mind (at least their name, company, email address, etc). Might be better, and easier, if every quote you created was associated with some client. It would make garbage collection easier -- no orphaned records, etc. i have in mind that quote can be for clients and no clients in future release, so i have put this field to null , then i can controle if is empty or not via rules . What is the difference between status column and activate? For example, how can a quote be activate but "dead." Or inactivate but open? Seems like you these two fields should be normalized (merged). i have forget to update the shema , because i have already deleted this field , the intention was to hide a quote from client , so client can't view the quote until it was activated by admins . Other then that, looks good. -Adam thanks for you feedbacks Quote Link to comment Share on other sites More sharing options...
PauloV Posted July 6, 2015 Report Share Posted July 6, 2015 Hello naja7host Great progect I agree with all Keep it up Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 6, 2015 Author Report Share Posted July 6, 2015 first step is done now creation of quote from admin panel is completed . (the same as creating invoices ) now second step = client interface . third step = adding buttons to admins and clients (actions , accept , reject and close) . fourth step = prepare quote to be viewed by clients as html or PDF ( not sur what will be easy ? ). final step = test and test and test and share if i have time i will add the option to send the quote via email , if no i will add it in the next major release . Joseph H and Paul 2 Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 8, 2015 Author Report Share Posted July 8, 2015 Second Step = Completed . Third Step = Completed. in third step i have succed to integrate the quote system with the invoice template core, i ahev created a my own component for quote to communicate with the invoice template, now is possible to download quote as PDF . my HTML template for pdf is also supported now , you can voiw quote as html page i have made change for the status field, now "'open','accepted','rejected','closed'" , i have removed the "dead" status as i can now determinated a expired quote by thier date_valid . also i have removed the "Accept/Reject" from the admin side , as the client only who have the right to accept or reject the quote , admins can edit/delete, reopen a closed quote . clients can accept/reject/view quotes . nothing else . at the moment , there is no option to add tax to quote lines (removed the TAX from quotes ) , it need a huge work for calculation and conditions for inclusive/exclusive taxes , i will added in the next major release . i think this week i will release the first edition Joseph H 1 Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 8, 2015 Author Report Share Posted July 8, 2015 the plugin is ready now ... where is the beta testers ? Joseph H, Paul and PauloV 3 Quote Link to comment Share on other sites More sharing options...
Joseph H Posted July 8, 2015 Report Share Posted July 8, 2015 the plugin is ready now ... where is the beta testers ? I will be glad to be one... Quote Link to comment Share on other sites More sharing options...
eXtremeSHOK Posted July 8, 2015 Report Share Posted July 8, 2015 Yes please ;-P Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 9, 2015 Author Report Share Posted July 9, 2015 I will be glad to be one... Yes please ;-P PM sent . Quote Link to comment Share on other sites More sharing options...
Michael Posted July 9, 2015 Report Share Posted July 9, 2015 I'm up for it if you like mate. Quote Link to comment Share on other sites More sharing options...
niyo Posted July 9, 2015 Report Share Posted July 9, 2015 Count me in =D Quote Link to comment Share on other sites More sharing options...
Michael Posted July 9, 2015 Report Share Posted July 9, 2015 Looks great mate, the only issue I would say is the text is too big on the drop down when searching for a client. PauloV 1 Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 10, 2015 Author Report Share Posted July 10, 2015 I'm up for it if you like mate. Pm sent . Looks great mate, the only issue I would say is the text is too big on the drop down when searching for a client. 9 Jul 2015 10-36-00.png it need some css tweak . Michael 1 Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 10, 2015 Author Report Share Posted July 10, 2015 Count me in =D PM sent, Beta testers is enough now, the first official release this weekend . PauloV and Michael 2 Quote Link to comment Share on other sites More sharing options...
S.H. Posted July 10, 2015 Report Share Posted July 10, 2015 so to not lose time, the quote status will have 'open','accepted','dead','closed' . 'open', for new quotes 'accepted', when client accept the quote 'dead', when the quote is expired 'closed' when the quote is rejected or closed by admins . i don't know if better to add a new status for rejected and Delivered status . what i prefer if to ad new status for rejected , and add new row for Delivered , but this will be in the >TODO list 2 when i add the option to send the quote via email . It will be better to use the status "expired" instead of "dead", so that it's less ambigious. No need for "reject" button or "reject" status. It should be understood by clients that closing a quote means "close without accepting" which is the same as rejecting. TODO list 2 : - cronjob to convert a accepted quote to invoice . - Clients can receive the quote via email as PDF , they can also download it as PDF. (implemented) - Comments both for client and staff under the qoute (threaded reply/conversation). - Devide Quote in two invoice after accept (for prepayment ,and after final work) - Create Quote for non clients , they can view it with a unique url . - Store Client info in the quotes for history . That is all . any one has an idea to implement it , i will add it to my one of TODO list . I agree with Adam, I don't think it's a good idea to create quotes for non clients. Every quote has to be addressed to someone so you will need all the same information from the person as if they were to be a client. So for a comprehensive approach this person to get the quote should be added to Blesta as if they were a client. If the person is not a client and they have a quote, then when they click accept and it converts to an invoice it would mean they have to now be a client not so? I think there may still be a way for you to issue quotes to non clients but I believe it would be best to have something in place to drop these quotes from the database once they become expired. Ok i disagree with myself on this line so strike Quote Link to comment Share on other sites More sharing options...
Blesta Addons Posted July 10, 2015 Author Report Share Posted July 10, 2015 It will be better to use the status "expired" instead of "dead", so that it's less ambigious. No need for "reject" button or "reject" status. It should be understood by clients that closing a quote means "close without accepting" which is the same as rejecting. about the expired sentanse is lready used in the client and admin board , also i have removed the dead status from database, because we get the expired quotes from sql query with date-valid . client can't close quote , they have only 3 buttons, accept, reject , view . closed quote is not rejected quote . the closed quote is the quote closed by admins, admins can't reject quote I agree with Adam, I don't think it's a good idea to create quotes for non clients. Every quote has to be addressed to someone so you will need all the same information from the person as if they were to be a client. So for a comprehensive approach this person to get the quote should be added to Blesta as if they were a client. If the person is not a client and they have a quote, then when they click accept and it converts to an invoice it would mean they have to now be a client not so? I think there may still be a way for you to issue quotes to non clients but I believe it would be best to have something in place to drop these quotes from the database once they become expired. Ok i disagree with myself on this line so strike in this version the quote is just for clients . about the non clients , is just a option to add or not . if we decied to add we will have some more task like . if the quote is adressed to no client , we should use email instead of client_id , also we should genereta a unique url for the quote . and for accept button , he should take them a to a page of registration , then they fill thier info and click register and accpet button , the account should be created , the quote moved to that account , then cjange status to accept, genereate invoice, delete unique url not a complicated case Quote Link to comment Share on other sites More sharing options...
Shane O-Mac Posted December 2, 2017 Report Share Posted December 2, 2017 does anyone know where i can get this to now? Quote Link to comment Share on other sites More sharing options...
Michael Posted December 2, 2017 Report Share Posted December 2, 2017 2 hours ago, Shane O-Mac said: does anyone know where i can get this to now? https://blesta-addons.com/plugin/membership_club/main/ First paid one. activa and Blesta Addons 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.