Description(GR)
- Αρχικά η επιχείρηση θα έχει 1 Εργοστάσιο με δυνατότητα επέκτασης
- Επίσης θα έχει και 1 κατάστημα πώλησης των προϊόντων με δυνατότητα επέκτασης
- Το εργοστάσιο θα παράγει διάφορα είδη σοκολάτας
- Το εργοστάσιο θα προμηθεύεται την πρώτη ύλη κάθε χρόνο με συμβόλαιο από συγκεκριμένο προμηθευτή. Σε Περίπτωση που η πρώτη ύλη πέσει στο 10 % τότε θα γίνεται νέα συμπληρωματική παραγγελία από τον ίδιο Προμηθευτή.
- Θα δεχόμαστε 3 προσφορές από Προμηθευτές οι οποίες θα αφορούν ποσότητα, τιμή ανά κιλό, ποιότητα (δείκτης όσο μεγαλύτερη η ποιότητα τόσο μεγαλύτερη η τιμή)
- Η επιχείρηση θα διαθέτει εργαζόμενους στο εργοστάσιο και στο κατάστημα πώλησης (Ignore for now)
- Τα είδη σοκολάτας που θα παράγει θα είναι λευκή, μαύρη, γάλακτος. Η γάλακτος χωρίζεται σε επιπλέον κατηγορίες: σκέτη, αμυγδάλου, φουντούκι. Κάθε είδος θα έχει διαφορετική τιμή πώλησης. Το κύριο προϊόν παραγωγής θα είναι η μαύρη σοκολάτα.
- Βασικός στόχος της πρώτης έκδοσης του ΣΥΣΤΗΜΑΤΟΣ είναι να μπορεί να επιλέξει προμηθευτή, να παράγει σοκολάτες και να πουλάει από το κατάστημα.
- Το κατάστημα που θα πουλάει τις σοκολάτες έχει πολιτική έκπτωσης κάθε δεύτερη Τρίτη του μήνα να εφαρμόζει 20 % έκπτωση στα προϊόντα του.
- Η πρώτη ύλη από τους προμηθευτές θα παραλαμβάνεται σε κιλά. Στο τέλος του έτους ότι περισσέψει (εάν περισσέψει) θα αφοσιώνεται σε πειραματισμό για νέα προϊόντα.
- Τα Προϊόντα που θα παράγονται για πειραματισμό θα δίνονται ως δώρο σε πελάτες που υλοποιούν αγορές πάνω από 30 ευρώ(1 προϊόν ανά 30 ευρώ).
- Εάν τα κέρδη της επιχείρησης στο τέλος του χρόνου φτάσουν σε ένα συγκεκριμένο ποσοστό θα δημιουργείται αυτόματα νέο κατάστημα πώλησης προϊόντων. Το ποσοστό θα καθορίζεται από τον πρόεδρο της εταιρίας.
- Η Παραγωγή θα είναι ημερήσια σταθερή 500 σοκολάτες. Το 50 % της σοκολάτας που θα παράγεται αρχικά θα πηγαίνει απευθείας στο κατάστημα. Το υπόλοιπο θα παραμένει σε αποθήκη που ανήκει στο εργοστάσιο. Όταν το ποσοστό στο κατάστημα πέφτει στο 25% τότε θα ανεφοδιάζεται πάλι από την αποθήκη στο τέλος της κάθε μέρας ώστε να έχει πάντα το 50% της παραγωγής.
- Κάθε νέο κατάστημα πώλησης θα διαθέτει τοποθεσία, δικούς του υπαλλήλους και θα μπορεί να αποδίδει ξεχωριστά τα κέρδη του προς την επιχείρηση.
- Στο τέλος κάθε ημέρας το κάθε κατάστημα θα αποδίδει αναφορά πόσο προϊόντα πουλήθηκαν από κάθε είδος καθώς και το υπόλοιπό τους.
Type | Properties | Methods |
---|---|---|
int | DepartmentID | get |
string | Description | get |
Type | Properties | Methods |
---|---|---|
decimal | Capital | get |
decimal | Revenue | get, set |
Extra Methods | Description |
---|---|
DailyActions(DateTime currentDate) | Set the daily Action of Company |
YearlyActions() | Set the yearly Action of Company |
Type | Properties | Methods |
---|---|---|
int | ID | get |
string | City | get |
string | Address | get |
double | TotalProducts | get |
double | TotalEmployees | get |
Type | Properties | Methods |
---|---|---|
decimal | Capital | get; private set; |
decimal | Revenue | get; set; |
List of Factory | Employees | get; set; |
List of Shop | Shops | get; set; |
List of Employee | Employees | get; set; |
CompanyPolicy | CompanyPolicy | get; set; |
bool | RevenueGoalAchieved | get; set; |
Extra Methods | Description |
---|---|
DailyActions(DateTime currentDate) | Set the daily Action of Company |
YearlyActions() | Set the yearly Action of Company |
Type | Properties | Methods |
---|---|---|
int | DepartmentID | get; set; |
Factory | Factory | get; set; |
List of Employee | Employees | get; set; |
List of Offer | AvailableOffers | get; set; |
offer | BestOffer | ---- |
Supplier | LastSupplier | get; set; |
Order | LastOrder | get; set; |
Extra Methods | Description |
---|---|
ReceiveOffers() | Add a new offer in the list of AvailableOffers |
Order SendOrder(Offer offer) | Send Offer to Accounting Deparment |
double OfferValue(Offer offer) | Calcualtes the value of offer |
Type | Properties | Methods |
---|---|---|
Factory | Factory | get, set |
ProductionPolicy | ProductionPolicy | get, set |
string | Description | get, set |
Extra Methods | Description |
---|---|
IProduct CreateProduct(string productName) | Choose what kind of Chocolate we want to create |
Type | Properties | Methods |
---|---|---|
int | DepartmentID | get, set |
string | Description | get, set |
int | ManagerID | get, set |
Type | Properties | Methods |
---|---|---|
Warehouse | Warehouse | get, set |
Production | Production | get, set |
Company | Company | get, set |
Accounting | Accounting | get, set |
List of Shop | Shops | get, set |
Extra Methods | Description |
---|---|
OpeningActions() | Set the opening actions of factory |
DailyActions(DateTime currentDate) | Set the daily actions of factory |
YearlyActions() | Set the yearly actions of factory |
Type | Properties | Methods |
---|---|---|
Company | Company | get, set |
List of Product | Products | get, set |
List of Employee | Employees | get, set |
Dictionary string, int | DailyProductsSold | {the products for sale}etc "WhiteChocolate" |
string | Location | get, set |
decimal | DailyEarnings | get, set |
Extra Methods | Description |
---|---|
SellProduct(string productName) | Sell Product, add the price Of Product in Daily, increase DailyProductsSold |
ServeCustomer(List string productsToSell) | Get the order of Customer and check if the products have value more than 30 euro |
DailyActions(DateTime date) | What do extactly every day the object Shop |
DailyReport() | Daily report of sales and earnings |
SendDailyEarnings() | The Shop send the daily earnings to object Company |
IsProductQuantityLow() | Check the Avalaible Quantity of Products of Shop |
RefillProducts() | Refill Products,if the IsProductQuantityLow() is true |
ReceiveProduct() | Receive Product from Warehouse |
RemoveExpiredProducts(DateTime currentDate) | Check if the Products have passed the ExpiredDate and it throws away. |
Type | Properties | Methods |
---|---|---|
string | FirstName | get, set |
string | LastName | get, set |
Type | Properties | Methods |
---|---|---|
int | EmployeeID | get |
string | DeparmentId | get |
string | ManagerId | get |
decimal | Salary | get, set |
string | EmailAddres | get, set |
Type | Properties | Methods |
---|---|---|
int | EmployeeID | get |
string | DeparmentId | get |
string | ManagerId | get |
decimal | Salary | get, set |
string | FirstName | get, set |
string | LastName | get, set |
string | EmailAddres | get, set |
double | Phone | get, set |
Type | Properties | Methods |
---|---|---|
int | ID | get, set |
string | FirstName | get, set |
string | LastName | get, set |
double | PhoneNumber | get, set |
Extra Methods | Description |
---|---|
SendSupplies(Order order) | Send Supplies from Supplier to Production |
endOffer(decimal pricePerKilo, Quality quality, int suppliesKilos) | Send Offer to Accounting Deparment |
Type | Properties | Methods |
---|---|---|
int | ID | get, set |
string | Description | get, set |
DateTime | ProductionDate | get, set |
DateTime | ExpirationDate | get, set |
decimal | Price | get, set |
- DarkChocolate
- WhiteChocolate
- ExperimentalProduct
- PlainMilkChocolate
- AlmondMilkChocolate
- HazelnutMilkChocolate
Type | Properties | Methods |
---|---|---|
decimal | PricePerKilo | get, set |
Quality | Quality | get, set |
int | Quantity | get, set |
decimal | TotalCost | get, set |
Supplier | Supplier | get, set |
Factory | Factory | get, set |
Type | Properties | Methods |
---|---|---|
FactoryPolicy | Factory | get, set |
ProductionPolicy | Production | get, set |
PricePolicy | Pricing | get, set |
ShopPolicy | Shop | get, set |
Type | Properties | Methods |
---|---|---|
int | DailyProducts | get, set |
double | LowSuppliesThresholdPercent | get, set |
double | MinimumRevenueToInvest | get, set |
double | RevenueYearlyGoal | get, set |
int | NumberOfOffers | get, set |
Type | Properties | Methods |
---|---|---|
double | BlackChocolatePercent | get, set |
double | WhiteChocolatePercent | get, set |
double | MilkChocolatePercent | get, set |
double | AlmondMilkChocolatePercent | get, set |
double | HazelnutMilkChocolatePercent | get, set |
int | BlackChocolateSupplies | get, set |
int | WhiteChocolateSupplies | get, set |
int | AlmondMilkChocolateSupplies | get, set |
int | HazelnutMilkChocolateSupplies | get, set |
int | ExperimentalChocolateSupplies | get, set |
Type | Properties | Methods |
---|---|---|
double | ProductsToShopPercent | get, set |
double | ShopRestockPercent | get, set |
int | ShopStockSize | get, set |
int | ShopRestockThreshold | get, set |
double | ShopDiscount | get, set |
DayOfWeek | DiscountDay | get, set |
int | DiscountDayOccurence | get, set |
decimal | GiftMinimumPrice | get, set |
Type | Properties | Methods |
---|---|---|
decimal | BlackChocolatePrice | get, set |
decimal | WhiteChocolatePrice | get, set |
decimal | MilkChocolatePrice | get, set |
decimal | AlmondMilkChocolatePrice | get, set |
decimal | HazelnutMilkChocolatePrice | get, set |
Title | Description |
---|---|
ICustomerService | Interface for CustomerService |
ISupplierService | Interface for SupplierService |
CustomerService | |
SupplierService | |
RandomGenerator | Create random data for different processes |
ImportJsonHelper | Import data from json to list of object |
- Analysis
- Design
- Development
- Unit testing
- Mockup Data
- Programming Language C#
- Framework .NET 4.7.3
- Console Application