How to create regular (monthly) reports from users? There are several users with a customized role - Sales managers, who need to provide monthly reports on sales. A Content Type - Sales Report was configured in the system. 

The users will need to login and if the report is not yet provided for the last month, they need to have an option to create a new one and submit it, if the report was provided - they need to have the option to edit the report. 

After the report is submited, a user with the role Department Manager will have to approve the report or send it back to Sales managers to be update. 

How do I organize/configure this with Drupal?
This seems like a perfect usecase for the Forena module. Forena is built of the idea of using SQL to get data out of a database and use XHTML and CSS to format it into web reports (and/or charts). Visit the Forena HowTos page for some links (near the bottom) to some live demo / showcase links, and experiment a bit with some of its demo samples.

Have a look at the "Northwind database" demo videos, which is similar to what you're looking for. Such as these videos:


How to create a report/graph about Shipping summary (fast forward to about 4:15 if you're not interested in the SQL query prototyping part of it).
How to create Crosstab Tables and (related) charts (fast forward to about 2:15 if you're not interested in the SQL query prototyping part of it).
Various other Video demos and tutorials created in an earlier (7.x-3.x) release of Forena (which are mostly still accurate, but only using outdated Forena screens that have been enhanced in the 7.x-4.x version).


Below are some more suggestions to map the various features you're asking for to Forena equivalents ...


  There are several users with a customized role - Sales managers, who need to provide monthly reports on sales.


Forena comes with various types of permissions, such as:


Who is allowed to build the SQL statements (data blocks) that will be used in the reports that visualize these data?
Who can browse specific reports?


Especially for "sensitive data" (commissions, salaries, ...) this is important.


  A Content Type - Sales Report was configured in the system.


Forena doesn't really need a content type to show its reports/graphs. And using the BEAN integration of it you can also create blocks that display Forena reports. For the actual look-and-feel of the report, anything that can be expressed in XHTML is supported by Forena.


  The users will need to login and if the report is not yet provided for the last month, they need to have an option to create a new one and submit it.


That sounds like anonymous users are to be excluded from Forena reports (a matter of permissions). If the site somewhere shows a menu item or some link to "a" (monthly?) report, these users just have to use that link.  And specifying the actual month for which the report is to be shown, is typically implemented as a "report parameter", typically a pull down selection list near the top of the report.

Because of all the options that Forena offers to specify report parameters, there are various ways you could implement the selection of the actual month to be reported about.


  If the report was provided - they need to have the option to edit the report.


That's what you typically do using the WYSIWYG report editor. Though somebody who's familiar with XHTML might rather want to directly edit the (so called) .frx files.


  After the report is submited, a user with the role Department Manager will have to approve the report or send it back to Sales managers to be update.


That sounds like a workflow issue. Not sure if it is the only (or most elegant) way to implement this, but here is a possible approach:


Somebody authorized to do so, should create a report for the "new" month, by cloning the report from the "prior" month. Probably only changing the parameter list (by adding the new month to it).
Grant access to this new report to (only) role Department Manager, so that such users can look at the new report.
Continue improving the "new" report (as in step 1.) until it gets approved by the Department Manager.
After the "new" report is approved, grant access to anybody else who is now also allowed to browse it.
Build a special Forena report that can be used (by an authorized user ...) to send a notification eMail to all users that might be interested in being notified that the "new" report is available. To do so, you just build a report of such users, and enable "eMail" as on of the allowed "document formats" (= formats that a report can be exported to, such as CSV, XLS, PDF, eMail, etc).



  How do I organize/configure this with Drupal?


As detailed above: there's a module for it, i.e. Forena

PS: nowhere in your questions it says anything about "Charts" (sales people often "need" them also) ... But creating charts is a bonus that comes with Forena also ...

Disclosure: I'm a co-maintainer of Forena.