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


.png)