示例#1
0
        protected override void SetupGrouping(BatchesGrouping grouping)
        {
            grouping.AddGrouping((c, n) => false, null);

            #region Production price
            grouping.AddValidator((b, c) =>
            {
                if (b.ProductionWorkPrice == null && b.Price == 0)
                {
                    c.Warning($"Šarže \"{b.GetTextInfo()}\" nemá uvedenu cenu práce při výrobě");
                }
            });
            #endregion

            #region Foregin currency
            grouping.AddValidator((b, c) =>
            {
                if (b.PriceConversion != null)
                {
                    c.Warning($"Šarže má \"{b.GetTextInfo()}\" cenu zkonvertovanou z cizí měny");
                }
            });
            #endregion
        }
示例#2
0
 protected abstract void SetupGrouping(BatchesGrouping grouping);
示例#3
0
        protected override void SetupGrouping(BatchesGrouping grouping)
        {
            #region  Invoice Number
            grouping.AddGrouping((reference, candidate) =>
            {
                if (string.IsNullOrWhiteSpace(reference.InvoiceNr) ||
                    string.IsNullOrWhiteSpace(candidate.InvoiceNr))
                {
                    return(false);
                }

                return(string.Equals(reference.InvoiceNr,
                                     candidate.InvoiceNr,
                                     StringComparison.InvariantCultureIgnoreCase));
            }, null);

            grouping.AddValidator((b, l) =>
            {
                if (string.IsNullOrWhiteSpace(b.InvoiceNr))
                {
                    l.Warning($"Šarže \"{b.GetTextInfo()}\" nemá číslo faktury");
                }
            });
            #endregion

            #region Invoice variable symbol
            grouping.AddGrouping((reference, candidate) => string.Equals(reference.InvoiceVarSymbol,
                                                                         candidate.InvoiceVarSymbol,
                                                                         StringComparison.InvariantCultureIgnoreCase),
                                 (reference, candidate, log) =>
            {
                log.Warning($"Šarže \"{reference.GetTextInfo()}\" a \"{candidate.GetTextInfo()}\" mají stejné číslo faktury, ale rozdílný variabilní symbol - nemohou být sloučeny do jedné příjemky");
            });

            grouping.AddValidator((b, l) =>
            {
                if (string.IsNullOrWhiteSpace(b.InvoiceVarSymbol))
                {
                    l.Warning($"Šarže \"{b.GetTextInfo()}\" nemá v.s.");
                }
            });
            #endregion

            #region Supplier
            grouping.AddGrouping(
                (reference, candidate) => (reference.SupplierId ?? -1) == (candidate.SupplierId ?? -2),
                (reference, candidate, log) =>
            {
                if (candidate.SupplierId == null)
                {
                    log.Warning($"Šarže \"{candidate.GetTextInfo()}\" nemá dodavatele");
                }
            });

            grouping.AddValidator((b, l) =>
            {
                if (b.SupplierId == null)
                {
                    l.Warning($"Šarže \"{b.GetTextInfo()}\" nemá dodavatele");
                }
            });
            #endregion

            #region Currency
            grouping.AddGrouping((reference, candidate) =>
            {
                var refRateId = reference.PriceConversion?.CurrencyRateId ?? -1;
                var canRateId = candidate.PriceConversion?.CurrencyRateId ?? -1;

                return(refRateId == canRateId);
            },
                                 (reference, candidate, log) =>
            {
                log.Warning($"Šarže \"{reference.GetTextInfo()}\" a \"{reference.GetTextInfo()}\" mají rozdílné cizí měny, nebo použitý převodní kurz - nebudou na stejné příjemce");
            });
            #endregion

            #region Purchase Date
            grouping.AddGrouping((reference, candidate) => reference.Created.Date == candidate.Created.Date, (reference, candidate, log) =>
            {
                log.Warning($"Šarže \"{reference.GetTextInfo()}\" a \"{candidate.GetTextInfo()}\" mají stejné číslo faktury a dodavatele, ale rozdílné datum naskladnění - nebudou na stejné příjemce");
            });
            #endregion

            #region Price
            grouping.AddValidator((b, l) =>
            {
                if (b.Price < 0.00001m)
                {
                    l.Warning($"Šarže \"{b.GetTextInfo()}\" má cenu {b.Price}");
                }
            });
            #endregion

            #region Inventory
            grouping.AddGrouping((reference, candidate) => reference.Material.InventoryId == candidate.Material.InventoryId,
                                 (reference, candidate, cx) =>
            {
                cx.Warning($"Šarže \"{reference.GetTextInfo()}\" a \"{candidate.GetTextInfo()}\" nemohou být na jedné příjmece, protože materiály spadají do různých skladů");
            });
            #endregion
        }