Absolute value discount in Special Prices
I have a customer that has special prices with a value discount, not a percentage one.
I thought about adding a UDF to the Special Prices table and do a formatted search against it, but later I found that I cannot add an UDF to the Special Prices table...
All the discount functionality in SBO is percentage based...how should I implement an absolute value discount?
Any ideas will be much appreciated...
Hi.
This is sample code in C++ to add UDF.
_bstr_t TableName = L"TableUID";
_bstr_t FieldName;
HRESULT hr;
SAPbobsCOM::IUserFieldsMDPtr m_pUserFieldsMD = m_Cmp->GetBusinessObject( SAPbobsCOM::oUserFields );
m_pUserFieldsMD->PutTableName(TableName);
FieldName = L"FieldUID"; 'without U_'
m_pUserFieldsMD->PutType(SAPbobsCOM::db_Alpha);
m_pUserFieldsMD->PutName( FieldName );
m_pUserFieldsMD->PutDescription( L"desc");
m_pUserFieldsMD->PutSize(20);
m_pUserFieldsMD->PutEditSize(20);
if ( m_pUserFieldsMD == NULL )
return -1;
m_Cmp->StartTransaction();
hr = m_pUserFieldsMD->Add();
if (hr!=S_OK)
'error'
if ( m_Cmp->InTransaction )
m_Cmp->EndTransaction( SAPbobsCOM::wf_Commit );
Hope it helps.
Kamil Wydra
Similar Messages
-
Special Price + Formatted Search for Special Price.
Hi all,
Appreciate some help here. Our client is using SAP B1 2007 Patch 38. AU/NZ localization, Local Currency = AUD.
Scenario:
Item A, Price List 1 = $2795, Price List display = 4 decimals, Price List Currency = USD
Special price for Item A has been set up as follows:
Step 1 - Go to Item> Price List> Price and Volumne Discount
Step 2 - The price and volumn discount screen opened. From the drop down, select price list and then select Item A by double clicking the line.
Step 3 - Period Discount screen opened. Valid from = 9th July 2008. Price = $2795.
Step 4 - Double click the line, Volume Discount Price List open, with the following details maintained.
Quantity=1, Discount=0, Special Price = $2795.
Quantity = 10, Discount=7.1556, Special Price = $ 2595.0010
Quantity = 100, Discount=10.0179, Special Price=$ 2514.9997
Question: we intend to put in Special price = $2595 and $2515, but SAP just does its own round up. Is there a way to work around?
Scenario 2:
To deal with the problem from Question 1, we have created a formatted search in the sales order and formatted search to round up the value in Line Total.
Column = Line Total
Trigger by = Quantity
Query = SELECT (case when $[$63.0.0]='USD' then Round($[$38.23.number],0) else $[$38.23.number] end)
Column = Quantity
Trigger by = Discount%
Query = SELECT $[$38.11.1]
The above set up works fine, if the user enter the quantity correctly the first time.
Eg:
User enter Qty = 10, SAP will display Discount = 7.1556 % and Line Total = $25,950.00 (Round up from $25950.01).
If user notice the quantity is wrong and then enter new quantity = 100, the discount remains at 7.1556%, it should be 10.0179%.
Question: Is there a way to work around this?Hi Shawn ,
1.First check the decimal setting
a.Administration --> system intilisation --Document setting -- currency or by document --
b.System initiliaisation ---> general settng --->Display
c.Administration set up->Financial currency ---rounding --???
Currency setting overides the rounding method of procedure B
Scenario2
Since your trigger is dicount percentage , You will not get the desired output from the formatted search . Try to get the trigger at quantity .
Hope that helps
Bishal -
Adding special prices to items query.
Hi, I'm just wondering if anybody can help me work out how to add special prices to items on a volume basis. say if i sold one item there would be no discount but if i sold 10 then i would automatically want a 5% discount to be given, I've had a look around and nothing seems to be popping out at me, i want the discount given to all customers also.
many thanks.Dear RW,
Choose Inventory ->Price Lists ->Special Prices ->Special Prices for Business Partners
To define the special price of an item for a business partner, in the Special Prices for Business Partners window, enter the required business partner and item information
To open the Period Discounts window, in the # column, double-click a row . Enter the required dates, price list, discount, and price and choose the Update button
To save the modified special prices, in the Special Prices for Business Partners window, choose the Update button
If no date-dependent special price has been defined for an item, SAP Business One assumes that the customer-specific special price has been valid since the date on which it was added. The special price with the appropriate valid-from date appears in the first row.
Defining Quantity-Based Special Prices for a Business Partner
Choose Inventory -> Price Lists -> Special Prices -> Special Prices for Business Partners .
The Special Prices for Business Partners window appears.
To open the Period Discounts window, in the # column, double-click a row . Enter the required dates, price list, discount, and price.
In the Period Discounts window, double-click a price-list row to open the Special Prices - Volume Discounts window, and enter the quantity, discount, and special price.
After you enter or change the price, SAP Business One automatically calculates the discount according to the difference between quantity-based and the date-dependent special price.
To confirm your entries, choose the Update button in the Special Prices - Volume Discounts window and the Period Discounts window.
To save the modified special prices, choose Update in the Special Prices for Business Partners window.
To define quantity-based special prices, you do not have to define a date dependency in addition to the SAP Business One default one. You can also define quantity-based special prices directly, based on the special price for the business partner
Regards,
Sarkar R -
Cash Discount in absolute value, not in %
Hello Friends,
I have a scenario with respect to terms of payment, where the customer is entitled for a cash discount of Rs.100 per unit if the invoice is cleared within 7 days from the date of invoice, Rs.75 per unit within 14 days & Rs.50 per unit within 21 days with total credit period of 45 days.
The problem I'm facing is that in the Terms of Payment configuration (transaction code OBB8), I'm able to store the cash discount in % and not in absolute value (field "percentage" under the "Payment Terms" heading in tcode OBB8).
Request your suggestion at the earliest.
Thnx & Rgds,
PadmanabhanHi,
The CASH DISCOUNT will be given based on the Payment terms with the CONDITION TYPE.
In the Standard the CASH DISCOUNT condition types are SKTO & SKTV.
If you are using the same condition types, change the CALCULATION TYPE for these condition types in V/06 to B ( which is fixed amount) and try.
Hope it will solve your requirement.
regards,
santosh -
Discount Group and Special Prices
Hello Everyone
I have a scenario where by the discount given in both Discount Group and Special Prices needs to work in conjunction.Now at the moment if i give it in both discount group and Special Prices for BP,only Special Price discount is being picked up ie its given precedence over Discount Group.Is there any setting that i need to change to make this work.I have to show the difference in discount elsewhere,so only i need to map this in both discount group and special prices.
Thanks and regards
Raghuhi raghu ram,
Check the wiki page in this link
How is the default item unit price determined in marketing documents?
https://www.sdn.sap.com/irj/scn/wiki?path=/pages/viewpage.action&pageid=29524391
Hope it will solve problem.
Jeyakanthan -
Special prices - Group discount
Hi
There are special prices defined for certain customers. A special price discount were defined for a certain period which ended at the end of Sept 2010. Previously a group discount of 10% was defined for this customer. Now that the period discount expired, the special price dicount should revert back to the group discount of 10% but it doesn't. It just pulls through the normal price as per the price list assigned to the BP.
I deleted the period discount line in the period discount window even though the period expired but no luck.
I couldn't find any notes on the subject so has anyone got a solution for me?
The version is 2007A PL 44
Regards
DanieHi
After much testing it seems that the system handles it in the following manner -
If the item exists in the window for 'Special prices' - which is the highest level, and even if the disc % is zero, no further checking is done - even though a disc exists in a lower level, in this case 'Group Discounts'.
When you delete the item from the 'Special Prices' window, the discount defined for 'Groups' pulls through.
This is the case in 2007 PL44 and also in 8.8 PL11 so I suppose it's just the way SBO handles special prices.
This may be ok for companies with few bp's and items, but for my client with many bp's and huge warehouses, maintaining special prices is a huge problem.
Regards -
Special Prices for BP Period Discounts
Hi all
Is it possible to mass import Special Prices for BP Period Discounts for all Customers and Items?
Kedalene ChongHi,
How many records you want import?
If more than thousand records, you need to split the records into 1000 records to import correctly.
Check SAP notes:
928625
- DTW_How to import/update Special Prices via DTW
Thanks & Regards,
Nagarajan -
Prices on invoices not mantained - Discounts - Special Prices
Hello everybody,
I'm developing with SBO2005 A PL7 and DI API.
I have this problem with an our addon that generates invoices.
If I set this properties:
.Lines.Price = X
.Lines.DiscountPercent = Y
and I have Stock Management - Price Lists - Special Prices - Discount Groups setted for this customer,
the price X comes mantained ok, but the DiscountPercent Y comes overwritten on this instruction:
objInvoice.Add as if it takes another PriceList.
Do you know why?
How can I set this field AR/Invoice - Form Settings - Price List (for the document)?
Thank you
AndyI intended the field Price List field in [Form 998, Item = 31, Variable = 2, OCTG.ListNum]
Thank you again -
On Net value: Discount Condition Type
Hi,
I would like to know whether the below requirement can be fulfilled with the standard SD configuration.
As far as I know all discount condition types calculates on Gross value. But I have a discount condition type (lets say 123 = Special Discount) which should calculate based on Net value. I can create a step after Netvalue but the problem I see is, how the system calculates Output tax
eg.
10 PR00
20 ABC (Customer discount)
30 XYZ (Material discount)
40 Discount Sum
50 Net Value
60 123 (Special Discount)
70 MWST (output tax)
So if I place discount type 123 after Net value, I think it will calculate on net value, but the problem might come with MWST as it cant calculates on Netvalue but on 123. Am I right? I knew it can be done with the ABAPer help. But I would like to know whether it can be done with standard (alrady predefined) SAP configuration. (by assigning any routine or some settings in Pricing procedure determination in V/08 ???)
Thank you.Hi santosh
Sub total will the PR00 - Discount sum
Net price will be Sub total - Special discount
how do I mention that sub total will be PR00 - Discount. I configure like this
10 PR00
20 ABC (Customer discount)
30 XYZ (Material discount)
40 Discount Sum from20 to39
50 Sub total
60 123 (Special Discount)
70 Net price
80 MWST (output tax)
90 Total
when I indicate from 20 to 39 besides Discount Sum, system will sum the discounts between step 20 to 39. How do I write at sub total like this, so that system will deduct the discount sum from PR00. Similary how do I write Sub total - Special discount.
Could you please explain bit more detail.
Thank you. -
Hi All,
I need some assistance with a query to simulate how B1 would choose Prices for a specific customer for a UDF.
It would need to check special prices for BP's, period and volume discounts, and if nothing, then return the value to the default price list assigned to the BP.
Thanks in advance.
Regards,
KiranHi,
SELECT O0.DOCDATE , N1.SERIESNAME + LTRIM(STR(O0.DOCNUM)) AS DOCNUM , O0.CARDNAME , P0.ListName ,
I0.ITEMNAME , O1.QUANTITY , O1.PRICE AS [SPECIAL PRICE] , I1.Price AS [SALE PRICE]
FROM ORDR O0 INNER JOIN RDR1 O1 ON O0.DocEntry = O1.DocEntry
INNER JOIN NNM1 N1 ON N1.Series = O0.Series
INNER JOIN OITM I0 ON I0.ItemCode = O1.ItemCode
INNER JOIN ITM1 I1 ON I0.ItemCode = I1.ItemCode
INNER JOIN OCRD C0 ON C0.CardCode = O0.CardCode
INNER JOIN OPLN P0 ON P0.ListNum = C0.ListNum AND I1.PriceList = C0.ListNum
WHERE O0.DocDate >= '01/OCT/2011' AND O0.DocDate <= '31/OCT/2011'AND O1.SHIPDATE >= '01/OCT/2011' AND O1.SHIPDATE <= '31/OCT/2011'
AND I1.PRICE <> O1.PRICE AND I0.QryGroup64 = 'Y'
AND C0.GroupCode IN (102, 104, 105)
ORDER BY O0.DocDate
We have framed this query only for a specific group of customers.
If you want to run this for all your customers then alter the criteria for groupcode.
Thanks
Malhaar -
Condition Record for Special Price to First 10 customers
Hello All
there is a requirement from real estate client that they want to charge a special price to the first 10 customers purchasing their residential flat.Sale part is being handled thru SD only. Flats are created as Material master. Now as n number of Flats are created. So, thru Standard functionality, special price is required for first 10 customers who purchases these flats.
Thanks
Deepak MehmiHello Deepak,
I think you are missing something. first of all let me tell you what is maxcond base value .
Maximum condition value
Specifies the maximum condition value for this condition record.
Use
You use this field to limit the use of a particular condition record to a specified total value.
Example
You offer a customer a special discount on a certain product but want to limit this discount to a specified total amount. You enter the maximum amount (for example, 1000 USD) in this field. As you process orders that use this condition record, the system updates the cumulative value. When the maximum value is reached, the system automatically deactivates the condition record in subsequent orders. In your case you decided to sell first 10 flats @ 100000 Rs, means total 10 lakhs
Mention this value here.
Once you mention this and start selling your flats, and system monitors this value, and soon as it reaches 10 lakhs, it will stop giving the discount to the customer. This is a control other than the no: of orders , it means you have here second control to control no: of orders, by no: wise and by value wise. I think you got what I mean.
Now coming back to your question :
as, for 11th order, the required price is different (e.g. Rs 2000 after 10th SO), where i'll maintain condition record with value Rs. 2000. ?
You have to maintain standard price in PR00 and any discounts should go for respective discount types and in your case it should be K004 condition type by going to VK12.
Again now please maintain max.condition value in K004 by ticking condition update at V/06 and coming back to vk12, selecting k004, and maintain your discounts, maxcondition value , no: of orders required etc. and save it.
I have repeted this in my sandbox this for you and got it right, then why not you. try it again, you will get it. Do it right.
All the best.
Sridhar.
Note
To see the current cumulative value for a particular condition record, you select Details -> Cumulative values in the overview screen of the condition record. -
Special Prices for "SALE" period.
Dear SD pricing experts,
We seek a suggestion for a pretty common scenario wherein when we have a SALE period -- by definition it could mean special prices for SOME of the regular items -- maybe old arrivals / improper condition of the item hence devalued but still perfectly usable, for a specific period. However for the same period, some items (quantities) of the same, which are in brand new condition, would be available for sale at the regular price.
How can one handle this in the SAP SD pricing or related. This should be such that only the right material goes at the right price and not the GOOD material at the SALE price.
Please note there is no separate identification' of the "devalued" items. e.g. cloth items, or cosmetic items which have lost their packaging and likewise.
Look forward to a valuable solution to this.
Regards,
TariqHi,
It is understood that you want to give special prices for certain items. The special prices can be given through discount condition K007.
1. Create a condition table that includes u2018Order reasonu2019 as one of the fields. Say, the condition table includes Sales organization, Distribution channel, Division and Order reason. Say, the condition table is 650.
2. Create an access sequence Z001 u2013 Discount for SALE period; this access sequence has the condition table 650.
3. Enter this access sequence in condition type K007.
4. Create order reason as 101-Sale period dis A, 102-Sale period dis B, 103-Sale period dis C [Menu path: Spro >> SD >>Sales >> Sales docu header >> Define order reason]
5. Maintain condition record for K007 in VK11. Maintain different discounts for different order reason.
6. Create a sales order. If the material is eligible for discount, select the order reason [eg; 101]. The respective discount will be reflected.
7. The condition record is controlled by the u2018from- tou2019 validity period.
8. If you need to reflect the discounted price in the price PR00 itself, assign this access sequence in the condition type PR00 and maintain different prices for different order reason. You will get PR00 value directly.
Hope this information will be useful to you.
Regards,
K Bharathi -
DI API: 2005A PL: 08 Special Prices
Hi everyone,
I am using the DI-Object SpecialPrices for adding a special price in the Database. We use a German MSSQL Server 2000 and VB.Net (1.1)
My Code:
Public Sub PreislisteZwischenspeichernLöschenUndSetzen()
'Dim oPreisliste As SAPbobsCOM.PriceLists
Dim oSonderpreisliste As SAPbobsCOM.SpecialPrices
Dim oSonderpreislisteDataArea As SAPbobsCOM.SpecialPricesDataAreas
Dim oSonderpreislisteQuantityArea As SAPbobsCOM.SpecialPricesQuantityAreas
Dim oSBOB As SAPbobsCOM.SBObob
oSBOB = oCibAddOn.oCompany.GetBusinessObject(BoObjectTypes.BoBridge)
'oPreisliste = oCibAddOn.oCompany.GetBusinessObject(BoObjectTypes.oPriceLists)
oSonderpreisliste = oCibAddOn.oCompany.GetBusinessObject(BoObjectTypes.oSpecialPrices)
' Staffelpreisliste neu eingeben
' Wichtig, Standardpreis muss in der Preisliste unter ITM1 eingegeben sein
Dim oArtikelPreis As SAPbobsCOM.Items
Dim oArtikelPreise As SAPbobsCOM.Items_Prices
oArtikelPreis = oCibAddOn.oCompany.GetBusinessObject(BoObjectTypes.oItems)
oArtikelPreis.GetByKey("9999")
Dim intIndex As Integer = 0
Dim blExit As Boolean = False
Do While blExit = False And intIndex < oArtikelPreis.PriceList.Count
oArtikelPreis.PriceList.SetCurrentLine(intIndex)
If oArtikelPreis.PriceList.PriceList = 1 Then
oArtikelPreis.PriceList.Currency = "EUR"
oArtikelPreis.PriceList.Price = 12.5
If oArtikelPreis.Update() <> 0 Then
MsgBox(oCibAddOn.oCompany.GetLastErrorDescription)
End If
blExit = True
End If
intIndex += 1
Loop
oSonderpreisliste.CardCode = "70000"
oSonderpreisliste.ItemCode = "9999"
oSonderpreisliste.Currency = "EUR"
oSonderpreisliste.Price = 12.5
oSonderpreisliste.PriceListNum = 1
oSonderpreisliste.SpecialPricesDataAreas.SetCurrentLine(0)
oSonderpreisliste.SpecialPricesDataAreas.AutoUpdate = BoYesNoEnum.tYES
oSonderpreisliste.SpecialPricesDataAreas.DateFrom = New System.DateTime(2006, 4, 26)
oSonderpreisliste.SpecialPricesDataAreas.Dateto = New System.DateTime(2006, 4, 28)
oSonderpreisliste.SpecialPricesDataAreas.PriceCurrency = "EUR"
oSonderpreisliste.SpecialPricesDataAreas.PriceListNo = 1
oSonderpreisliste.SpecialPricesDataAreas.SpecialPrice = 12.5
oSonderpreisliste.SpecialPricesDataAreas.Add()
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.SetCurrentLine(0)
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.PriceCurrency = "EUR"
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.Quantity = 1
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.SpecialPrice = 12.5
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.Add()
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.SetCurrentLine(1)
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.PriceCurrency = "EUR"
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.Quantity = 100
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.SpecialPrice = 10
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.Add()
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.SetCurrentLine(2)
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.PriceCurrency = "EUR"
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.Quantity = 1000
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.SpecialPrice = 7.5
oSonderpreisliste.SpecialPricesDataAreas.SpecialPricesQuantityAreas.Add()
If oSonderpreisliste.Add <> 0 Then
MsgBox(oCibAddOn.oCompany.GetLastErrorCode)
MsgBox(oCibAddOn.oCompany.GetLastErrorDescription)
End If
System.Windows.Forms.Application.Exit()
End Sub
We get all the time the errormessage: Date is out of range.
We also try to use the functions SaveAsXML and GetBusinessObjectFromXML, but then the same error comes.
Trinidad wrote a lot of time that the error is solved in the Version 2005, but it isn`t so for us.
Please help
Regards
JörnSorry for the double post; I thought I would be better showing how my code goes.
As with the original poster, I am using the DI-object Special Prices to insert new records. I am trying to create a Special Price that is BP-Item specific, using the default demo company (SBO Demo UK), valid date from 15 Jun to 20 Jun.
Dim oSpecialPrices As SpecialPrices = oCompany.GetBusinessObject(BoObjectTypes.oSpecialPrices)
Dim oSpecialPricesDataAreas As SpecialPricesDataAreas = oSpecialPrices.SpecialPricesDataAreas
' SpecialPrices settings
oSpecialPrices.ItemCode = "A1000"
oSpecialPrices.CardCode = "C1000"
oSpecialPrices.AutoUpdate = BoYesNoEnum.tYES
oSpecialPrices.PriceListNum = 3
oSpecialPrices.DiscountPercent = 50
' ------------------ START ------------------
' SpecialPricesDataAreas settings
oSpecialPricesDataAreas.SetCurrentLine(0)
oSpecialPricesDataAreas.DateFrom = New DateTime(2006, 6, 15)
oSpecialPricesDataAreas.Dateto = New DateTime(2006, 6, 20)
oSpecialPricesDataAreas.AutoUpdate = BoYesNoEnum.tYES
oSpecialPricesDataAreas.Discount = 15
oSpecialPricesDataAreas.PriceListNo = oSpecialPrices.PriceListNum
oSpecialPricesDataAreas.PriceCurrency = "GBP"
oSpecialPricesDataAreas.Add()
' ------------------- END -------------------
' Adding and checking for any errors
oSpecialPrices.Add()
oCompany.GetLastError(lErrCode, sErrMsg)
If lErrCode <> 0 Then
MsgBox(lErrCode & ": " & sErrMsg)
End If
If the portion of the code between START and END was commented out the insertion was successful. Else as it is, it will keep prompting Invalid Date Range (-10).
Can anyone please shower some enlightenment? -
Hello
My question is about special price and depending on the last price a discount applies
Example discount 10%
Customer A no special price for article B 100 so with discount it'll be 90
Customer B special price for article B 70 so with discount it'll be 63
ThanksYou can use the Special Price for BP's
-
Forum,
I would like some advice on the best way to handle special prices in "Period and volume discount" currently we have a couple of thousand items in this aera, but only a couple of hundred that are needed. i would like my colleagues (who enter the special prices) to manage this better i.e. when an item is not on special offer (or is not a bulk buy item) for them to remove from this list. can you let me know what other companys do to manage this area. and if there is an easy way to manage this better.
Regards,
JuanWould anyone on the forum be able to assist?
Regards,
Juan
Maybe you are looking for
-
Why can't I update bootcamp software on my Macbook Air 2013?
I'm running windows 8 on my 13" macbook air 2013. Apple sent me a notification of updated bootcamp support software and directions for installation. This web page included a list of the models that are supported by this software and mine is one of th
-
I cant remember the password to a locked PDF file. How do I retrieve the password?
I can't remember the password for a locked PDF file. How do I retrieve the password?
-
Need Help With PHPMyAdmin!
Hi, I'm following along with this tutorial for installing PHPMyAdmin: http://www.adobe.com/devnet/dreamweaver/articles/settingup_php04.html Per Step 8, when I go to http://localhost/phpmyadmin/setup/index.php I get this: Bzip2 Bzip2 compression and d
-
My Fix: Error during rendering/encoding
I am very new to iMovie and iDVD. Used iMovie a little back during iMovie3, but not since. That said, I've captured 8 - 10 hours of miniDV footage to a back up drive and been experimenting with iMovie HD, iMovie 08 and iDVD. After creating a short 'p
-
Why aren't he comments on PDFs not showing up when placed in Indesign?
I'm placing some PDFs in an Indesign file (They are surveys, so they all have annotated answers in red on the PDF ) And none of the answers are showing up. Its not a display problem since they won't show up when you export or print the pages. Any ide