This chapter is $Revision: 1.1 $ $Date: 2003/01/05 00:00:30 $.
Provide capability for non-purchasing staff to manually enter requisitions to purchase both inventory and non-inventory items.
Capability to requisition items without part numbers.
Provide capability to notify requisitioner that purchase order for the requisitioned items has been processed.
Provide place for requisitioner to notify purchasing that substitutions are or are not allowed.
Requisition will have required date which specifies the date the items must be received by.
Automated or batch conversion of requisitions to purchase orders based on policy
Provide list of open requisitions by buyer responsible and allow buyer to check each requisition and convert to purchase order.
Send purchase orders to vendors.
Keep track of which purchase orders have been printed and/or sent (via fax, EDI or mail).
Provide capability to resend Purchase Orders.
Provide capability keep track of purchase order history. When sent, when resent, when modified etc.
Provide capability to select a group of unsent Purchase Orders and send all at one time.
Maintain delivery status of line items on purchase orders. If an line item is going to be delivered by multiple deliveries then each delivery should be shown on a separate line item.
Provide buyer prompting for almost due or late material follow-up.
Provide capability for purchasing staff to enter buyer information and link buyers to simple inventory type.
Maintain simple user defined product types. Allow purchasing staff to enter product types in a master table and to assign inventory items to product types.
The following items will be implemented in future version of this module. They may be implemented in the base module or be added via an industry specific add on.
Maintain average lead time for each vendor supplying item.
Maintain level of service for each vendor.
Approvals and workflow.
Request for Quotations and Quotations.
The following Business Objects are defined and maintained by this module.
Purchase Order or Requisition Line Item (line number, item number, vendor item number, item description, price, quantity)
Purchase Order or Requisition which is an aggregation of Purchase Orders or Requisition Line Items (vendor name and address, company billing name and address, company shipping name and address, purchase order number, required delivery date, fob point, shipping method.)
Buyer (which is related to external object Employee)
Item
Vendor
Employee
Currency
Purchase Order Entry
Requisition Entry
Enter, Update and Delete Buyers
Provide easy form to update delivery status.
Material due by due date
Open Purchase Orders by Vendor
Requisitions not converted to Purchase Orders by date
All purchases by item selected by time frame.
Lead time calculation is the time from issuing of the purchase order to vendor to the time the item is received into inventory in calendar days.
pur::approval - if approved and not_approved are false then the document has not been reviewed, upon review either approved can be selected or not_approved, but not both.
# purchasing.gcd # # Copyright (C) 2001 Free Software Foundation, Inc. # # This file is part of GNU Enterprise. # # GNU Enterprise is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # GNU Enterprise is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Enterprise; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA. # # This file originally written by Neil Tiffin (neilt@gnue.org). # # $Revision: 1.1 $ $Date: 2003/01/05 00:00:30 $ $Author: psu_gnue $ # include "../../../base/units/classes/units.gcd" include "../../../supply-chain/vendor/classes/vendor.gcd" module pur { # ------------------------------------------------------------------------- # Add purchasing info to vendor object. # ------------------------------------------------------------------------- # EXTEND vendor::vendor # { # text notes; # # # help en notes "These notes will show up in the purchasing form" # # "with an option to print on the purchase order."; # }; # ------------------------------------------------------------------------- # Recommended Vendor # ------------------------------------------------------------------------- class use_vendor { vendor::vendor *recommended; text notes; }; # ------------------------------------------------------------------------- # Purchasing Item # ------------------------------------------------------------------------- class item : base_item::item { char buyer_code<8>; text purch_text; char purch_desc<100>; pur::use_vendor [] recommend_vendor; # help en buyer_code "The buyer code is a reference to the buyer responsible" # "for purchasing this product."; # help en purch_text "The purchasing text is text that appears on a line item" # "on the purchase order. It would normally be used for" # "special notes."; # help en purch_desc "The purchasing description replaces the normal item" # "description for purchase orders only."; }; # ------------------------------------------------------------------------- # buyer - employees responsible for this purchase group # ------------------------------------------------------------------------- class buyer { char buyer_group<8>; person::employee [] buyers; }; # ------------------------------------------------------------------------- # this is standard text that can be referenced by id and copied to p.o. # ------------------------------------------------------------------------ class text { char id<8>; # is unique for id+buyer char buyer<8>; # buyer code text text; # for keeping standard text that is not by item # normally for various special conditions }; # ------------------------------------------------------------------------- # approval_list - a company wide list of all chains of approval. # ------------------------------------------------------------------------ class approval_list { char name<25>; person::employee [] employee; }; # ------------------------------------------------------------------------- # approval - the status of this po/req chain of approval # ------------------------------------------------------------------------ class approval { char name<25>; #list name person::employee *employee; boolean approved = false; boolean not_approved = false; # pur::header *what; # what was approved (redundant) }; # ------------------------------------------------------------------------- # status - overall status of this document # req, approved req, po, approved po, sent po, closed po # not approved req, not approved po. # ------------------------------------------------------------------------ class status { char name<25>; }; # ------------------------------------------------------------------------- # # ------------------------------------------------------------------------- class detail { # pur::header *header; # redundant int line_number; # the line on the po char item_number<25>; # the item ordered pur::item *item; # optional char purch_desc<100>; text purch_text; # for free form notes by item. currency::money price; unit::quantity quantity; date required_date; }; # ------------------------------------------------------------------------- # header - for requisitions or purchase orders # ------------------------------------------------------------------------- class header { char id<10>; vendor::vendor *vendor; char payment_terms<25>; # TODO should be pointer char delivery_terms<25>; # TODO should be pointer date date_placed; date date_completed; pur::approval [] approval; pur::status *status; text po_notes; # free form notes for the total purchase order pur::detail [] detail; # help en po_notes "These notes will show up in the purchasing form" # "with an option to print on the purchase order."; }; };