Ga naar inhoud

Movehighlocation

Form MoveHighLocation

  • Unit name: Forms.MoveHighLocation
  • Form name: TMoveHighLocationForm
  • Old form name: (unit38) Form38.

Synopsis

Form to register a move from a high to a low location.

Functionalities

  1. Property for Country property.
  2. Property for Pickjob (block id).
  3. Grid to show candicates locations: View HighLocationCandidates. Open on form show, take parameter from PickJob ID.
  4. Label to show country (caption set from property)
  5. Label to show picking job ID (caption set from property)
  6. Source group
  7. Edit for source location. On change, all other edits are cleared and disabled. On Enter key, execute SelectSourceLocation action.
  8. Edit for article code. Disabled if there is no location.
    On change, quantity and destination location edits are cleared and disabled. On Enter key, execute SelectArticle action.
  9. Edit for Move quantity (number). Disabled if there is no location and article.
    On Enter key, execute CheckQuantity action.
  10. Label for max/reserved qty.
  11. Label for recent picks display.
  12. Label for the stock and reserved stock.
  13. Dest group
  14. Edit for destination location. On Enter execute OK action.
  15. Disabled till there are valid source and destination locations.
  16. Button to execute OK action.
  17. Button to execute Cancel action.

Actions

CheckQuantity.

  1. Enabled when the article quantity edit is enabled.
  2. Checks that the article quantity to move is at least STOCK_RESERVED. if not, an error is shown:
    The minimum quantity you can move is: :STOCK_RESERVED.
    

SelectSourceLocation.

  1. Enabled when there is a source location.
  2. Checks that the entered location matches the selected line in the grid. If not, displays an error:
    The scanned location differs from the selected location.
    
    the operation is aborted.
  3. Checks that the entered location exists. If not, displays an error:
    The scanned location :Location does not exist in the database.
    
    the operation is aborted.
  4. The Area,Row,Place are saved.
  5. Article edit is enabled and focused.

SelectArticle.

  1. Enabled when there is a source location and article.
  2. Checks that the entered article exists using ArticleFromBarCode view.
  3. If the article does not exist, an error is shown
    The scanned article :Article does not exist in the database.
    
    The article is focuses, all text selected and the operation is aborted.
  4. If a move message exists, it is displayed.
  5. Checks that the entered article matches the selected line in the grid. If not, displays an error:
    The scanned article differs from the selected article line.
    
    the operation is aborted.
  6. The article stock is checked using ArticleStockOnLocation. If no stock exists (Stock<=0), a message is shown:
    There is no stock for article :Article on this location.
    
    The operation is aborted. The stock and reserved stock are shown.
  7. Get the article pick count and picked quantity count (ArticleRecentPickList) from the last 30 days and display in label as
    :Quantity pieces, :Picks picks in 30 days.
    

OK

  1. Enabled when there is a valid start, destination location, article and quantity.
  2. Check existence of destination location. (Location view) If not, displays an error:
    The scanned location :Location does not exist in the database.
    
    the operation is aborted.
  3. Check if destination location has stock of other articles. (LocationHasStock view) if yes, a confirmation dialog is shown:
    On the destination, there is another article:
    :Article (:Pieces pieces)                    
    Press YES if you still want to continue!'
    
    if the user aborted, the operation is aborted.
  4. Execute a partial move with the selected parameters if the entered quantity is less than the stock + stock_reserved quantities.
  5. comments is
    'Move '+Edit1.TEXT+'->'+Edit3.TEXT+' '+'75'+'->'+'75',
    
  6. OpComments
     ' partial qty moved back from a FM'
    
  7. Transaction is move
  8. Scan history operation is move-fl
  9. Form is completely reset.

Cancel

  1. Always enabled.
  2. On Execute, Close form and show Move Menu form.

Tables/Views

  • LOCATION To check that source and destination locations exist.

  • LocationHasStock

    SELECT
      ARTCODE,
      sum(QTYIN - QTYOUT) AS STOCQTY
    FROM
      STOCTOTAL
    WHERE
      ARTCODE <> :Article
      AND LOCATION = :Location
    GROUP BY
      ARTCODE
    HAVING
      sum(QTYIN - QTYOUT) > 0
    

  • ArticleStockOnLocation

    select
      [dbo].[LOC_STOCK_MOVE_F_HIGH] (:Location,:Article ,75) AS STOCK,
      [dbo].[LOC_STOCKRESERVED_MOVE_F_HIGH] (:Location,:Article,75) AS STOCK_RESERVED
    

  • ArticleFromBarCode See StockArticle form.

  • HighLocationCandidates

    SELECT
      E.SQWPK,
      B.ARTCODE,
      C.LOCATION,
      C.STOCKCODE,
      sum(B.QTY) AS QTY,
      [dbo].[LOC_STOCK_MOVE_F_HIGH](B.ARTCODE, C.LOCATION, C.STOCKCODE) AS SQTY,
      [dbo].[LOC_STOCKRESERVED_MOVE_F_HIGH](B.ARTCODE, C.LOCATION, C.STOCKCODE) AS
        STOCK_RESERVED
    FROM
      OUT A
      INNER JOIN OUTDETAILS B ON (A.AVIZ = B.AVIZNO)
      INNER JOIN INVDETAILS C ON
        (B.INVOICENO = C.ID)
        AND (B.ARTCODE = C.ARTCODE)
      INNER JOIN LOCATION E ON (C.LOCATION = E.LOCATION)
    WHERE
      (A.blockno = :BlockID)
      AND (RIGHT (C.LOCATION, 1) <> 'A'))
      AND (B.TRANSACTIONTYPE IN ('ORD', 'KIT'))
      AND (C.STOCKCODE = '75')
    GROUP BY
      E.SQWPK,
      B.ARTCODE,
      C.LOCATION,
      C.STOCKCODE
    ORDER BY
      E.sqwpk,
      B.artcode
    

SELECT lPickOrder, aName,lName, sum(odQuantity) AS odQuantity, (Select IsNull(SUM(idQuantity-ISNULL(QTYOUT,0)),0) AS Quantity from STOCTOTAL where (idArticleFK=article.aID) and (idLocationFK=location.lID) and (idStockCode='75')) as aQuantity, (Select IsNull(SUM(idQuantity-ISNULL(QTYReserved,0)),0) AS Quantity from STOCTOTAL where (idArticleFK=Article.aID) and (idLocationFK=location.lID) and (idStockCode='75')) as aQuantityReserved FROM OutOrder inner join OutOrderDetail on (oID=odOutOrderFK) Inner join InvDetail on (odInvDetailFK=idID) and (odArticleFK=idArticleFK) Inner join location on (idLocationFK=lID) Inner join article on (idArticleFK=aID)

WHERE (oPickJobFK = :PickJob) AND (RIGHT (lName, 1) <> 'A')) AND (odTransactionType in ('ORD', 'KIT')) AND (idStockCode = '75')

GROUP BY lPickOrder,aName,lName

ORDER BY lPickOrder,aName

Needed Service Calls

Call 1

Call 2

Reports