Software application, preferably written in C# 2.0 (Visual Studio .NET 2005). If you wish, you may use .NET 3.0 (workflows, etc) although this would be exceed my expectations. The database must be MS SQL 2005 Express Edition.
Code will be reviewed for performance and potential to be scaled. An API should be exposed, and use of a simple middle-tier library for data persistence is expected.
You may use third party products and applications, so long as the costs either fall within the estimate or are otherwise approved by myself. This may prove to be a good idea - anything that would make the project simple and quick would be preferred. The use of freely available and popular libraries and frameworks is suggested.
I was personally not able to find a reasonably-priced software package that does the following with in an intuitive user interface:
(In my opinion, this should be fairly straightforward and inexpensive to develop)
1. An application (exe) with no user interface that, when run, will process the text file(s) in a directory specified as a command line argument or config setting. The files will be processed in order of date modified, and each will be an EDI/CSV text file containing a batch of orders to be fulfilled (we will provide you with the text file's layout/schema).
1.1 Each file contains any number of orders. An order will contain a customer's name and address, shipping method and any number of line items that should correspond by UPC to an item in the inventory (stored in a table in the database).
1.2 Each order is saved to a record in a database with an OrderState field.
1.3 There are two cases:
1.3.1 For any order that can be fulfilled immediately (where the actual product stock level minus the reserved level is greater than 0 for all ordered products), the order state should be marked as being in the "picking" state, the reserve level should be increased by one and a pick ticket should automatically be printed in real-time. The pick ticket (aka packing slip) is simply the order details (what was ordered, by whom, etc) with a barcode for the order number. All orders should be held until they are ready to ship complete.
1.3.2 If for any product in the order the actual stock level minus reserved level is 0 or less, the backorder count will be increased. A corresponding purchase order (PO) record will be created, or if one already exists it will be updated to reflect the backorder.
1.4 The application should summarize it's actions, any errors, etc to a log file that is stored on disk and emailed
2. A purchase order generator, which compiles a list of items on backorder grouped by item and vendor. A user can select a vendor and generate/print the corresponding PO, which is simply a a human readable report. There should also be the ability to have a plugin (or be able to call out to another application) to do additional work with the PO data (e.g., generate and transmit CSV file).
3. (This application can be saved for a 2nd release and possibly in separate work order) An application that regularly monitors backorders and uses an intelligent algorithm that uses common practices of supply chain management to suggest intelligent purchase orders (POs) based on historical order volumes and other factors. You must be able to define and change the characteristics that are used to determine when a PO is automatically generated (min/max levels, supplier volume discounts, etc.). I am not very familiar with distribution systems and everything that this entails, so I'd appreciate if the person working on this project could provide some guidance in this area.
4. A front end to
4.1 Import products in batch via CSV files to a database table. This CSV will be provided. There are approximately 500,000 items to be imported.
4.2 Allow user entry of a new product using a form
4.3 Search. Any field should be searchable, however, there will be a combination of several specific fields that will almost always be used to find products. We will explain how these fields combine to give the product ID that the products table is keyed on. Search results should display matching products as well as their inventory counts and a link to any open orders that are requesting the searched item.
4.4 Receiving screen, which adds items to inventory by physically scanning UPC barcodes. This operates in one of two modes:
4.4.1 One-by-one (each item scanned increases stock level by one)
4.4.2 Barcode scan followed by quantity entering (e.g., item is scanned, user enters 25 [Enter] and stock level is increased by 25).
4.4.3 The mode could be toggled to allow for removing items from inventory rather than adding
4.4.5 You should be able to optionally select a purchase order. Once a load of items have been scanned, you would be shown the products that did not match the PO.
5. Shipping application. We would like to use the application remotely, away from a computer screen by using a cordless barcode scanner (therefore, there should be no prompts or dialog boxes during the shipping process). We would take a printed pick ticket, scan it's pick ticket barcode, then scan the UPCs of the ordered products from the inventory in any order. If a product was scanned that was not in the pick ticket or too many items were scanned, an error beep should occur. If all items were successfully scanned, there should be a confirmation sound and the order should be marked as complete and archived in the system. The actual and reserved stock counts should be decreased accordingly. When done, the user will return to the computer and click a "Finish" button that will create a CSV file (sample will be given) and optionally run a specified program.
*I would expect that there is already software that does the above but unfortunately I was unable to find an application that did exactly what I wanted. If you are familiar with a program that meets all my requirements or can be made to meet them, I will be more than happy to pay a fee for the configuration. If you will be configuring existing software versus creating a custom piece, please factor that into your bid. If you create the software, I would be purchasing the rights to the code and the ability to resell it.
59 freelancers are bidding on average $1214 for this job
We have something similar ready and working for several clients but written in VB6.0. If VB6.0 is acceptable to you, we can give you a tried and tested software. Let me know through PMB. Regards