We use an external system for returns which send ORDERS05 IDOC to SAP to create a return order. When users create Returns in external system they select how much restocking fees needs to be charged and send it as condition type ZN01 in E1EDP05-KSCHL. Though they are sending ALCKZ as negative still it is adding ZN01 to base price in SAP so we are ending up crediting customer more than what they originally paid.
How to map E1EDP05-ALCKZ so that for negative value system should subtract from base price instead of adding it. ZN01 is maintained as Discount/Surcharge (condition class A) and calculation type is B (fixed amount).
Well, if sending a negative value results in a wrong sign in the document then maybe you simply need to send a positive value? That would seem logical to me for a surcharge.
Otherwise you can just flip the value in a user exit. Although check first if there actually isn't already a user exit or some routine that does just the opposite. In that case you'd just need to write an exception in it.