This is USObject.m in view mode; [Download] [Up]
#import "USObject.h"
@implementation USObject
// AWAKEFROMNIB
// This is one of the last methods executed after the nib file is loaded.
// This is the BEST way I know how to initialize an object and jump into
// a method after the nib file was loaded, because you are all the methods
// and variables needed can be used. (Unlike init which is not compeletly
// ready when that message is sent
- awakeFromNib
{
[CalcWindow makeKeyAndOrderFront:NULL];
[StockPrice selectText:self];
return self;
}
- Calc:sender
{
//Assign Misc Variables
char dummyString[20];
int WhichOne;
//Assign CalcWindow Variables
float stockprice;
float numberofshares;
float totalstockprice;
float totalcommission;
float total;
float netamountpershare;
stockprice = [StockPrice floatValue];
numberofshares = [NumberOfShares floatValue];
// Take the value in Stock Price * Number of Shares and display
// the result in the Total Stock Price textfield
totalstockprice = [StockPrice floatValue] * [NumberOfShares floatValue];
sprintf(dummyString, "%.2f", totalstockprice);
[TotalStockPrice setStringValue:dummyString];// Display result
// Figure out the commission rate and then do the calculations
// Checks if the stock price is below Stock1 if yes then
// calculates the commission using Comm1
if ([StockPrice floatValue] <= [Stock2 floatValue]) totalcommission = (([StockPrice floatValue] * [NumberOfShares floatValue]) * ([Comm1 floatValue] / 100));
// Checks if the stock price is >=Stock3 and <= Stock4 if yes then
// calculates the commission by adding Comm2 and multiplying
// Comm3 by the number of shares
if ([StockPrice floatValue] >= [Stock3 floatValue] && [StockPrice floatValue] <= [Stock4 floatValue]) totalcommission = ([Comm2 floatValue] + ([NumberOfShares floatValue] * [Comm3 floatValue]));
// Checks if the stock price is >=Stock5 and <= Stock6 if yes then
// calculates the commission by adding Comm4 and multiplying
// Comm5 by the number of shares
if ([StockPrice floatValue] >= [Stock5 floatValue] && [StockPrice floatValue] <= [Stock6 floatValue]) totalcommission = ([Comm4 floatValue] + ([NumberOfShares floatValue] * [Comm5 floatValue]));
// Checks if the stock price is >=Stock7 and <= Stock8 if yes then
// calculates the commission by adding Comm6 and multiplying
// Comm7 by the number of shares
if ([StockPrice floatValue] >= [Stock7 floatValue] && [StockPrice floatValue] <= [Stock8 floatValue]) totalcommission = ([Comm6 floatValue] + ([NumberOfShares floatValue] * [Comm7 floatValue]));
// Checks if the stock price is >=Stock9 and <= Stock10 if yes then
// calculates the commission by adding Comm8 and multiplying
// Comm9 by the number of shares
if ([StockPrice floatValue] >= [Stock9 floatValue] && [StockPrice floatValue] <= [Stock10 floatValue]) totalcommission = ([Comm8 floatValue] + ([NumberOfShares floatValue] * [Comm9 floatValue]));
// Checks if the stock price is >=Stock11 and <= Stock12 if yes then
// calculates the commission by adding Comm10 and multiplying
// Comm11 by the number of shares
if ([StockPrice floatValue] >= [Stock11 floatValue] && [StockPrice floatValue] <= [Stock12 floatValue]) totalcommission = ([Comm10 floatValue] + ([NumberOfShares floatValue] * [Comm11 floatValue]));
// Checks if the stock price is >=Stock13 and <= Stock14 if yes then
// calculates the commission by adding Comm12 and multiplying
// Comm13 by the number of shares
if ([StockPrice floatValue] >= [Stock13 floatValue] && [StockPrice floatValue] <= [Stock14 floatValue]) totalcommission = ([Comm12 floatValue] + ([NumberOfShares floatValue] * [Comm13 floatValue]));
// Checks if the stock price is >=Stock15 if yes then
// calculates the commission by adding Comm14 and multiplying
// Comm15 by the number of shares
if ([StockPrice floatValue] >= [Stock15 floatValue]) totalcommission = ([Comm14 floatValue] + ([NumberOfShares floatValue] * [Comm15 floatValue]));
// Assign variables
totalstockprice = [TotalStockPrice floatValue];
// Transactions with principal values less than Principl Value
//will be charged a flat fee of FlatFee
if ([TotalStockPrice floatValue] <= [PrincipalValue floatValue]) totalcommission = [FlatFee floatValue];
// Assigns the value of the currently selected radio button
// using tag as a reference
WhichOne = [RadioButton selectedTag];
if (WhichOne == 2) totalcommission = totalcommission -(totalcommission * ([TeleMaxInput floatValue] / 100));
// Assigns the value of the currently selected radio button
// using tag as a reference
WhichOne = [BuySellRadio selectedTag];
if (WhichOne == 1) total = totalstockprice + totalcommission;
if (WhichOne == 2) total = totalstockprice - totalcommission;
// Display Total Commission
// Convert float to a string
sprintf(dummyString, "%.2f", totalcommission);
[TotalCommission setStringValue:dummyString];// Display result
// Display Net Amount
sprintf(dummyString, "%.2f", total); // Convert float to a string
[Total setStringValue:dummyString];// Display result
// Calculate Net Amount Per Share
// Number of Shares / Net Amount = Net Amount per Share
netamountpershare = [Total floatValue] / [NumberOfShares floatValue];
// Display Net Amount per Share
sprintf(dummyString, "%.2f", netamountpershare);
[NetAmountPerShare setStringValue:dummyString];// Display result
[NetAmountPerShare display];
[StockPrice selectText:self];
return self;
}
- PrintCalc:sender
{
[CalcWindow printPSCode:self];
return self;
}
- PrintCommSchedule:sender
{
[CommissionWindow printPSCode:self];
return self;
}
- TeleMax:sender
{
return self;
}
- DirectTrading:sender
{
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.