LS Retail Refund Issue

fahdfahd Member Posts: 226
Dear Experts,

I have disabled the normal refund in LS Retail, Normal Refund means when my staff wants to refund they are were simply clicking on Refund button and they entered the item whatever they require and we had some fraud issues.

But now it's not like that now they have to scan the the receipt and then only they can return it.

But with this new way i have one problem.


If i have made one transaction having 3 different items and tendered it with Credit card half and half with cash.

Now the customer comes and asks to return one item.

Now when my sales guys scan the receipt. the system automtically asks if card payment should be voided.

It makes problem for us, i don't want this prompt for voiding card payment itself is there any way in LS RETAIL THAT when my staff scan the receipt to be voided. it should show only items within in it and my staff should be able to refund them in whatever tender.

Attached snapshot is the prompt which i do not want, I know i can select NO button, but i was just wondering if i could just disable at any refund.

Kindly tell me how can i disable this Prompt of voiding Card payment.


  • Options
    ara3nara3n Member Posts: 9,256
    You need to change some code.
    If you are on older than 6.2 of LS retail it's in form 99008951 EPOS Main that you need to change.
    In 6.2 and higher the code has moved to CU 99001570 POS Transaction

    Search for
    IF (Transaction.Date = TODAY) THEN BEGIN

    Comment out the whole section from Begin till end.
    Ahmed Rashed Amini
    Independent Consultant/Developer

    blog: https://dynamicsuser.net/nav/b/ara3n
  • Options
    fahdfahd Member Posts: 226
    Dear Rashed,

    Thanks alot it's solved now.

    I have commented the following line. Please have a look at it if this doesn't effects anything else.
    //  IF (Transaction.Date = TODAY) THEN BEGIN
     //   VoidCardEntry.SETCURRENTKEY("Store No.","POS Terminal No.","Transaction No.","Line No.");
     //   VoidCardEntry.SETRANGE("Store No.",Transaction."Store No.");
     //   VoidCardEntry.SETRANGE("POS Terminal No.",Transaction."POS Terminal No.");
     //   VoidCardEntry.SETRANGE("Transaction No.",Transaction."Transaction No.");
     //   IF VoidCardEntry.FIND('-') THEN REPEAT
     //     IF EFTUtil.TestVoidCardEntry(VoidCardEntry) THEN BEGIN
            // THIS ONE WAS ALREADY COMMENTED (FAHAD)IF PosConfirm(Text211 + VoidCardEntry."Card Number"
      //      IF PosConfirm(Text211 + VoidCardEntry.GetCardNo
        //        + Text212,FALSE) THEN BEGIN
       //       InitNewLine;
         //     CardEntryNo := VoidCard(VoidCardEntry);
         //     CardEntry.GET(PosTerminal."Store No.",PosTerminal."No.",CardEntryNo);
         //     IF VoidCardEntry."Transaction Type" = VoidCardEntry."Transaction Type"::Refund THEN
         //       PaymentAmount := -VoidCardEntry.Amount
         //     ELSE
         //       PaymentAmount := VoidCardEntry.Amount;
          //    ChangeTender := FALSE;
          //    KeyboardAmount := FALSE;
         //     TenderType.GET(PosTerminal."Store No.",VoidCardEntry."Tender Type");
           //   InsertPaymentLine;
          //    COMMIT;
          //  END;
       //   END;
      //  UNTIL VoidCardEntry.NEXT = 0;
    //  END;
      VoidInProcess := FALSE;
      CheckRunPOSAction(POSAction."Action Trigger"::"Refund Sales",
        POSAction."Execution Location"::" ",
        POSAction."Data Trigger"::" ",'');
  • Options
    ara3nara3n Member Posts: 9,256
    yep that should resolve it and it doesn't have any side effect. The reason for the code is there to handle post void scenarios, but most credit card implementations cannot handle post void the code doesn't handle partial tendering.
    Ahmed Rashed Amini
    Independent Consultant/Developer

    blog: https://dynamicsuser.net/nav/b/ara3n
Sign In or Register to comment.