Пример #1
0
 public ExpenditureEntry(string dominantTag, List <string> associatedTags, List <string> people, double expenditure, ExpenditureDate date)
 {
     this.dominantTag    = dominantTag;
     this.associatedTags = associatedTags;
     this.people         = people;
     this.expenditure    = expenditure;
     this.date           = date;
 }
Пример #2
0
 public ExpenditureEntry(int xmlID, bool budgetItem, string dominantTag, List <string> associatedTags, List <string> people,
                         double expenditure, ExpenditureDate date)
 {
     this.budgetItem     = budgetItem;
     this.dominantTag    = dominantTag;
     this.associatedTags = associatedTags;
     this.people         = people;
     this.expenditure    = expenditure;
     this.date           = date;
 }
 private void OnRecordExpenditure()
 {
     try
     {
         ExpenditureDate date        = ConvertDate();
         double          expenditure = ConvertExpenditure();
         CheckForTags();
         ExpenditureEntry entry = new ExpenditureEntry(dominantTagForAdding, associatedTagsForAdding.ToList(), peopleForAdding.ToList(), expenditure, date);
         recorder.RecordExpenditureData(entry);
         ResetProperties();
     }
     catch (ExceptionForUser e)
     {
         ExceptionForUserEventArgs args = new ExceptionForUserEventArgs(e);
         exceptionEventHandler.Invoke(this, args);
     }
 }
Пример #4
0
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            IGarmentUnitDeliveryOrderFacade unitDeliveryOrderFacade = validationContext == null ? null : (IGarmentUnitDeliveryOrderFacade)validationContext.GetService(typeof(IGarmentUnitDeliveryOrderFacade));

            if (ExpenditureDate.Equals(DateTimeOffset.MinValue) || ExpenditureDate == null)
            {
                yield return(new ValidationResult("Tanggal Pengeluaran Diperlukan", new List <string> {
                    "ExpenditureDate"
                }));
            }
            else if (UnitDODate > ExpenditureDate)
            {
                yield return(new ValidationResult($"Tanggal Pengeluaran Tidak boleh kurang dari {UnitDODate.ToOffset(new TimeSpan(7, 0, 0)).ToString("dd/MM/yyyy", new CultureInfo("id-ID"))}", new List <string> {
                    "ExpenditureDate"
                }));
            }
            if (UnitDONo == null)
            {
                yield return(new ValidationResult("Nomor Delivery Order Diperlukan", new List <string> {
                    "UnitDONo"
                }));
            }

            int itemErrorCount = 0;

            if (this.Items == null || Items.Count(i => i.IsSave) <= 0)
            {
                yield return(new ValidationResult("Item is required", new List <string> {
                    "ItemsCount"
                }));
            }
            else
            {
                string itemError = "[";

                foreach (var item in Items)
                {
                    itemError += "{";

                    if (item.IsSave)
                    {
                        var unitDO = unitDeliveryOrderFacade.ReadById((int)UnitDOId);
                        if (unitDO != null)
                        {
                            var unitDOItem = unitDO.Items.Where(s => s.Id == item.UnitDOItemId).FirstOrDefault();
                            if (unitDOItem != null)
                            {
                                if ((double)item.Quantity > unitDOItem.Quantity)
                                {
                                    itemErrorCount++;
                                    itemError += "Quantity: 'Jumlah tidak boleh lebih dari " + unitDOItem.Quantity + "', ";
                                }
                            }
                        }


                        PurchasingDbContext dbContext = (PurchasingDbContext)validationContext.GetService(typeof(PurchasingDbContext));
                        var UENItem = dbContext.GarmentUnitExpenditureNoteItems.AsNoTracking().FirstOrDefault(x => x.Id == item.Id);
                        if (UENItem != null)
                        {
                            if ((double)item.Quantity > UENItem.Quantity)
                            {
                                itemErrorCount++;
                                itemError += "Quantity: 'Jumlah tidak boleh lebih dari " + UENItem.Quantity + "', ";
                            }
                        }
                        if (item.Quantity <= 0)
                        {
                            itemErrorCount++;
                            itemError += "Quantity: 'Jumlah harus lebih dari 0', ";
                        }
                    }

                    itemError += "}, ";
                }

                itemError += "]";

                if (itemErrorCount > 0)
                {
                    yield return(new ValidationResult(itemError, new List <string> {
                        "Items"
                    }));
                }
            }
        }
        private static ExpenditureEntry ReadData(XmlNode IExpenditureEntry)
        {
            int             day             = 0;
            int             month           = 0;
            int             year            = 0;
            int             xmlID           = 0;
            bool            budgetItem      = false;
            string          dominantTag     = "";
            List <string>   associatedTags  = new List <string>();
            List <string>   people          = new List <string>();
            double          expenditure     = 0;
            ExpenditureDate expenditureDate = new ExpenditureDate();

            foreach (XmlNode expenditureData in IExpenditureEntry.ChildNodes)
            {
                switch (expenditureData.Name)
                {
                case "ID":
                    xmlID = int.Parse(expenditureData.InnerText);
                    break;

                case "BudgetItem":
                    budgetItem = expenditureData.InnerText == "true" ? true : false;
                    break;

                case "DominantTag":
                    dominantTag = expenditureData.InnerText;
                    break;

                case "AssociatedTags":
                    foreach (XmlNode asTag in expenditureData.ChildNodes)
                    {
                        associatedTags.Add(asTag.InnerText);
                    }
                    break;

                case "People":
                    foreach (XmlNode p in expenditureData.ChildNodes)
                    {
                        people.Add(p.InnerText);
                    }
                    break;

                case "Expenditure":
                    expenditure = double.Parse(expenditureData.InnerText);
                    break;

                case "Date":
                    foreach (XmlNode item in expenditureData.ChildNodes)
                    {
                        switch (item.Name)
                        {
                        case "Day":
                            day = int.Parse(item.InnerText);
                            break;

                        case "Month":
                            month = int.Parse(item.InnerText);
                            break;

                        case "Year":
                            year = int.Parse(item.InnerText);
                            break;

                        default:
                            break;
                        }
                        expenditureDate = new ExpenditureDate(day, month, year);
                    }
                    break;

                default:
                    break;
                }
            }
            return(new ExpenditureEntry(xmlID, budgetItem, dominantTag, associatedTags, people, expenditure, expenditureDate));
        }