I blogged before about one of my projects being a Jobs Management application built on top of Community Server. The most recent area we covered was Charge Labor. Using the Charge Labor service, project managers can enter hours billed for each days’ work. We also covered the Job Description page, how we’re using a custom Component-Art Jobs Grid to serve as the site’s home page. We also covered the role of Community Server background tasks, exception reporting and event logging to import data from the company’s business management database. The newest areas of the application that I’m describing today are Purchased and Truck Material charges, where personnel can billed items used on the job.
How the business process works is that job Purchase and Work Orders are created in the company’s accounting system. They are imported into the Jobs Management system, so each job has its unique set of purchased materials ready for use and charged to the job. Truck Materials include the inventory for whatever truck is assigned to the employee for that day. That information is also imported from the company’s accounting system. A lot of intelligent data integration had to be performed during the import of POs, PO line items, work orders and truck inventory changes into the Community Server Business application, but it was good to spend some quality time with SQL Server schema and stored procedures.
The Purchased and Truck Material Charge screens below are similar to the Charge Labor interface we’ve used before. There are a couple of interesting points unique to these apps. First is the truck selection dropdown in the second screen, where new panel selection items would be pulled from that truck’s inventory. Any number of trucks can be used during a session, which is cool from an application perspective, but what’s interesting from a Community Server Developer perspective, the truck ID becomes a property of the Chameleon TruckMaterialsGroup object, which is available in the page’s context to all objects on the page, which in our example would be the datasource for the Create Truck Charge Form.
Another interesting aspect from a Community Server developer’s perspective is on the Purchased Materials Summary page at bottom, where a group query retrieving all PurchasedMaterialGroup items by charge date is passed as the context of the PurchasedMaterialPostList for quick and easy groupings. That’s very powerful stuff.
Next up, now that the application supports the entry of labor and material charges for jobs, we need to begin generating Job Slips and Invoices, so more Community Server Cool coming up.