public GarmentSubconCuttingOutDetail(Guid identity, Guid cutOutItemId, SizeId sizeId, string sizeName, string color, double remainingQuantity, double cuttingOutQuantity, UomId cuttingOutUomId, string cuttingOutUomUnit, double basicPrice, double price, string remark) : base(identity)
        {
            //MarkTransient();

            CutOutItemId       = cutOutItemId;
            Color              = color;
            SizeId             = sizeId;
            SizeName           = sizeName;
            RemainingQuantity  = remainingQuantity;
            CuttingOutQuantity = cuttingOutQuantity;
            CuttingOutUomId    = cuttingOutUomId;
            CuttingOutUomUnit  = cuttingOutUomUnit;
            BasicPrice         = basicPrice;
            Price              = price;
            Remark             = remark;

            ReadModel = new GarmentCuttingOutDetailReadModel(Identity)
            {
                CutOutItemId       = CutOutItemId,
                Color              = Color,
                SizeId             = SizeId.Value,
                SizeName           = SizeName,
                RemainingQuantity  = RemainingQuantity,
                CuttingOutQuantity = CuttingOutQuantity,
                CuttingOutUomId    = CuttingOutUomId.Value,
                CuttingOutUomUnit  = CuttingOutUomUnit,
                BasicPrice         = BasicPrice,
                Price              = Price,
                Remark             = Remark
            };

            ReadModel.AddDomainEvent(new OnGarmentSubconCuttingOutPlaced(Identity));
        }
Exemplo n.º 2
0
        public GarmentExpenditureGoodReturnItem(Guid identity, Guid returId, Guid expenditureGoodId, Guid expenditureGoodItemId, Guid finishedGoodStockId, SizeId sizeId, string sizeName, double quantity, UomId uomId, string uomUnit, string description, double basicPrice, double price) : base(identity)
        {
            ReturId               = returId;
            ExpenditureGoodId     = expenditureGoodId;
            ExpenditureGoodItemId = expenditureGoodItemId;
            FinishedGoodStockId   = finishedGoodStockId;
            SizeId      = sizeId;
            SizeName    = sizeName;
            Quantity    = quantity;
            UomId       = uomId;
            UomUnit     = uomUnit;
            Description = description;
            BasicPrice  = basicPrice;
            Price       = price;

            ReadModel = new GarmentExpenditureGoodReturnItemReadModel(Identity)
            {
                ReturId               = ReturId,
                ExpenditureGoodId     = ExpenditureGoodId,
                ExpenditureGoodItemId = ExpenditureGoodItemId,
                FinishedGoodStockId   = FinishedGoodStockId,
                SizeId      = SizeId.Value,
                SizeName    = SizeName,
                Quantity    = Quantity,
                UomId       = UomId.Value,
                UomUnit     = UomUnit,
                Description = Description,
                BasicPrice  = BasicPrice,
                Price       = Price
            };

            ReadModel.AddDomainEvent(new OnGarmentExpenditureGoodReturnPlaced(Identity));
        }
Exemplo n.º 3
0
        public GarmentDeliveryReturnItem(Guid identity, Guid drId, int unitDOItemId, int uenItemId, string preparingItemId, ProductId productId, string productCode, string productName, string designColor, string roNo, double quantity, UomId uomId, string uomUnit) : base(identity)
        {
            this.MarkTransient();

            Identity        = identity;
            DRId            = drId;
            UnitDOItemId    = unitDOItemId;
            UENItemId       = uenItemId;
            PreparingItemId = preparingItemId;
            ProductId       = productId;
            ProductCode     = productCode;
            ProductName     = productName;
            DesignColor     = designColor;
            RONo            = roNo;
            Quantity        = quantity;
            UomId           = uomId;
            UomUnit         = uomUnit;

            ReadModel = new GarmentDeliveryReturnItemReadModel(identity)
            {
                DRId            = DRId,
                UnitDOItemId    = UnitDOItemId,
                UENItemId       = UENItemId,
                PreparingItemId = PreparingItemId,
                ProductId       = ProductId.Value,
                ProductCode     = ProductCode,
                ProductName     = ProductName,
                DesignColor     = DesignColor,
                RONo            = RONo,
                Quantity        = Quantity,
                UomId           = UomId.Value,
                UomUnit         = UomUnit,
            };
            ReadModel.AddDomainEvent(new OnGarmentDeliveryReturnPlaced(this.Identity));
        }
Exemplo n.º 4
0
        public GarmentAvalProductItem(Guid identity, Guid apId, GarmentPreparingId preparingId, GarmentPreparingItemId preparingItemId, ProductId productId, string productCode, string productName, string designColor, double quantity, UomId uomId, string uomUnit, double basicPrice, bool isReceived) : base(identity)
        {
            this.MarkTransient();

            Identity        = identity;
            APId            = apId;
            PreparingId     = preparingId;
            PreparingItemId = preparingItemId;
            ProductId       = productId;
            ProductCode     = productCode;
            ProductName     = productName;
            DesignColor     = designColor;
            Quantity        = quantity;
            UomId           = uomId;
            UomUnit         = uomUnit;
            BasicPrice      = basicPrice;
            IsReceived      = isReceived;

            ReadModel = new GarmentAvalProductItemReadModel(Identity)
            {
                APId            = APId,
                PreparingId     = PreparingId.Value,
                PreparingItemId = PreparingItemId.Value,
                ProductId       = ProductId.Value,
                ProductCode     = ProductCode,
                ProductName     = ProductName,
                DesignColor     = DesignColor,
                Quantity        = Quantity,
                UomId           = UomId.Value,
                UomUnit         = UomUnit,
                BasicPrice      = BasicPrice,
                IsReceived      = IsReceived
            };
            ReadModel.AddDomainEvent(new OnGarmentAvalProductPlaced(this.Identity));
        }
 public GarmentFinishedGoodStockHistory(GarmentFinishedGoodStockHistoryReadModel readModel) : base(readModel)
 {
     FinishedGoodStockId         = readModel.FinishedGoodStockId;
     FinishingOutItemId          = readModel.FinishingOutItemId;
     FinishingOutDetailId        = readModel.FinishingOutDetailId;
     ExpenditureGoodId           = readModel.ExpenditureGoodId;
     ExpenditureGoodItemId       = readModel.ExpenditureGoodItemId;
     AdjustmentItemId            = readModel.AdjustmentItemId;
     AdjustmentId                = readModel.AdjustmentId;
     ExpenditureGoodReturnId     = readModel.ExpenditureGoodReturnId;
     ExpenditureGoodReturnItemId = readModel.ExpenditureGoodReturnItemId;
     StockType    = readModel.StockType;
     RONo         = readModel.RONo;
     Article      = readModel.Article;
     UnitId       = new UnitDepartmentId(readModel.UnitId);
     UnitCode     = readModel.UnitCode;
     UnitName     = readModel.UnitName;
     ComodityId   = new GarmentComodityId(readModel.ComodityId);
     ComodityCode = readModel.ComodityCode;
     ComodityName = readModel.ComodityName;
     SizeId       = new SizeId(readModel.SizeId);
     SizeName     = readModel.SizeName;
     Quantity     = readModel.Quantity;
     UomUnit      = readModel.UomUnit;
     UomId        = new UomId(readModel.UomId);
     BasicPrice   = readModel.BasicPrice;
     Price        = readModel.Price;
 }
 public GarmentFinishingOutDetail(GarmentFinishingOutDetailReadModel readModel) : base(readModel)
 {
     FinishingOutItemId = readModel.FinishingOutItemId;
     SizeId             = new SizeId(readModel.SizeId);
     SizeName           = readModel.SizeName;
     Quantity           = readModel.Quantity;
     UomId   = new UomId(readModel.UomId);
     UomUnit = readModel.UomUnit;
 }
Exemplo n.º 7
0
        public void setUomId(UomId newUomId)
        {
            Validator.ThrowIfNull(() => newUomId);

            if (newUomId != UomId)
            {
                UomId           = newUomId;
                ReadModel.UomId = newUomId.Value;
            }
        }
Exemplo n.º 8
0
 public GarmentCuttingOutDetail(GarmentCuttingOutDetailReadModel readModel) : base(readModel)
 {
     CutOutItemId       = readModel.CutOutItemId;
     Color              = readModel.Color;
     SizeId             = new SizeId(readModel.SizeId);
     SizeName           = readModel.SizeName;
     RemainingQuantity  = readModel.RemainingQuantity;
     CuttingOutQuantity = readModel.CuttingOutQuantity;
     CuttingOutUomId    = new UomId(readModel.CuttingOutUomId);
     CuttingOutUomUnit  = readModel.CuttingOutUomUnit;
     BasicPrice         = readModel.BasicPrice;
     Price              = readModel.Price;
 }
Exemplo n.º 9
0
        public GarmentCuttingInDetail(Guid identity, Guid cutInItemId, Guid preparingItemId, Guid sewingOutItemId, Guid sewingOutDetailId, ProductId productId, string productCode, string productName, string designColor, string fabricType, double preparingQuantity, UomId preparingUomId, string preparingUomUnit, int cuttingInQuantity, UomId cuttingInUomId, string cuttingInUomUnit, double remainingQuantity, double basicPrice, double price, double fc, string color) : base(identity)
        {
            //MarkTransient();

            CutInItemId       = cutInItemId;
            PreparingItemId   = preparingItemId;
            SewingOutItemId   = sewingOutItemId;
            SewingOutDetailId = sewingOutDetailId;
            ProductId         = productId;
            ProductCode       = productCode;
            ProductName       = productName;
            DesignColor       = designColor;
            FabricType        = fabricType;
            PreparingQuantity = preparingQuantity;
            PreparingUomId    = preparingUomId;
            PreparingUomUnit  = preparingUomUnit;
            CuttingInQuantity = cuttingInQuantity;
            CuttingInUomId    = cuttingInUomId;
            CuttingInUomUnit  = cuttingInUomUnit;
            RemainingQuantity = remainingQuantity;
            BasicPrice        = basicPrice;
            Price             = price;
            FC    = fc;
            Color = color;

            ReadModel = new GarmentCuttingInDetailReadModel(Identity)
            {
                CutInItemId       = CutInItemId,
                PreparingItemId   = PreparingItemId,
                SewingOutItemId   = SewingOutItemId,
                SewingOutDetailId = SewingOutDetailId,
                ProductId         = ProductId.Value,
                ProductCode       = ProductCode,
                ProductName       = ProductName,
                DesignColor       = DesignColor,
                FabricType        = FabricType,
                PreparingQuantity = PreparingQuantity,
                PreparingUomId    = PreparingUomId.Value,
                PreparingUomUnit  = PreparingUomUnit,
                CuttingInQuantity = CuttingInQuantity,
                CuttingInUomId    = CuttingInUomId.Value,
                CuttingInUomUnit  = CuttingInUomUnit,
                RemainingQuantity = RemainingQuantity,
                BasicPrice        = BasicPrice,
                Price             = Price,
                FC    = FC,
                Color = Color
            };

            ReadModel.AddDomainEvent(new OnGarmentCuttingInPlaced(Identity));
        }
Exemplo n.º 10
0
 public GarmentExpenditureGoodItem(GarmentExpenditureGoodItemReadModel readModel) : base(readModel)
 {
     ExpenditureGoodId   = readModel.ExpenditureGoodId;
     FinishedGoodStockId = readModel.FinishedGoodStockId;
     SizeId        = new SizeId(readModel.SizeId);
     SizeName      = readModel.SizeName;
     Quantity      = readModel.Quantity;
     ReturQuantity = readModel.ReturQuantity;
     UomId         = new UomId(readModel.UomId);
     UomUnit       = readModel.UomUnit;
     Description   = readModel.Description;
     BasicPrice    = readModel.BasicPrice;
     Price         = readModel.Price;
 }
Exemplo n.º 11
0
 public GarmentDeliveryReturnItem(GarmentDeliveryReturnItemReadModel readModel) : base(readModel)
 {
     DRId            = ReadModel.DRId;
     UnitDOItemId    = ReadModel.UnitDOItemId;
     UENItemId       = ReadModel.UENItemId;
     PreparingItemId = ReadModel.PreparingItemId;
     ProductId       = new ProductId(ReadModel.ProductId);
     ProductCode     = ReadModel.ProductCode;
     ProductName     = ReadModel.ProductName;
     DesignColor     = ReadModel.DesignColor;
     RONo            = ReadModel.RONo;
     Quantity        = ReadModel.Quantity;
     UomId           = new UomId(ReadModel.UomId);
     UomUnit         = ReadModel.UomUnit;
 }
Exemplo n.º 12
0
 public GarmentAvalProductItem(GarmentAvalProductItemReadModel readModel) : base(readModel)
 {
     APId            = ReadModel.APId;
     PreparingId     = new GarmentPreparingId(ReadModel.PreparingId);
     PreparingItemId = new GarmentPreparingItemId(ReadModel.PreparingItemId);
     ProductId       = new ProductId(ReadModel.ProductId);
     ProductCode     = ReadModel.ProductCode;
     ProductName     = ReadModel.ProductName;
     DesignColor     = ReadModel.DesignColor;
     Quantity        = ReadModel.Quantity;
     UomId           = new UomId(ReadModel.UomId);
     UomUnit         = ReadModel.UomUnit;
     BasicPrice      = ReadModel.BasicPrice;
     IsReceived      = ReadModel.IsReceived;
 }
        public GarmentSewingInItem(Guid identity, Guid sewingInId, Guid sewingOutItemId, Guid sewingOutDetailId, Guid loadingItemId, Guid finishingOutItemId, Guid finishingOutDetailId, ProductId productId, string productCode, string productName, string designColor, SizeId sizeId, string sizeName, double quantity, UomId uomId, string uomUnit, string color, double remainingQuantity, double basicPrice, double price) : base(identity)
        {
            Identity             = identity;
            SewingInId           = sewingInId;
            SewingOutItemId      = sewingOutItemId;
            SewingOutDetailId    = sewingOutDetailId;
            LoadingItemId        = loadingItemId;
            FinishingOutItemId   = finishingOutItemId;
            FinishingOutDetailId = finishingOutDetailId;
            ProductId            = productId;
            ProductCode          = productCode;
            ProductName          = productName;
            DesignColor          = designColor;
            SizeId            = sizeId;
            SizeName          = sizeName;
            Quantity          = quantity;
            UomId             = uomId;
            UomUnit           = uomUnit;
            Color             = color;
            RemainingQuantity = remainingQuantity;
            BasicPrice        = basicPrice;
            Price             = price;

            ReadModel = new GarmentSewingInItemReadModel(identity)
            {
                SewingInId           = SewingInId,
                SewingOutItemId      = SewingOutItemId,
                SewingOutDetailId    = SewingOutDetailId,
                LoadingItemId        = LoadingItemId,
                FinishingOutItemId   = FinishingOutItemId,
                FinishingOutDetailId = FinishingOutDetailId,
                ProductId            = ProductId.Value,
                ProductCode          = ProductCode,
                ProductName          = ProductName,
                DesignColor          = DesignColor,
                SizeId            = SizeId.Value,
                SizeName          = SizeName,
                Quantity          = Quantity,
                UomId             = UomId.Value,
                UomUnit           = UomUnit,
                Color             = Color,
                RemainingQuantity = RemainingQuantity,
                BasicPrice        = BasicPrice,
                Price             = Price
            };

            ReadModel.AddDomainEvent(new OnGarmentSewingInPlaced(Identity));
        }
Exemplo n.º 14
0
 public GarmentPreparingItem(GarmentPreparingItemReadModel readModel) : base(readModel)
 {
     UENItemId          = ReadModel.UENItemId;
     ProductId          = new ProductId(ReadModel.ProductId);
     ProductCode        = ReadModel.ProductCode;
     ProductName        = ReadModel.ProductName;
     DesignColor        = ReadModel.DesignColor;
     Quantity           = ReadModel.Quantity;
     UomId              = new UomId(ReadModel.UomId);
     UomUnit            = ReadModel.UomUnit;
     FabricType         = ReadModel.FabricType;
     RemainingQuantity  = ReadModel.RemainingQuantity;
     BasicPrice         = ReadModel.BasicPrice;
     GarmentPreparingId = ReadModel.GarmentPreparingId;
     ROSource           = ReadModel.ROSource;
 }
Exemplo n.º 15
0
        public GarmentFinishedGoodStock(Guid identity, string finishedGoodStockNo, string rONo, string article, UnitDepartmentId unitId, string unitCode, string unitName, GarmentComodityId comodityId, string comodityCode, string comodityName, SizeId sizeId, string sizeName, UomId uomId, string uomUnit, double quantity, double basicPrice, double price) : base(identity)
        {
            Validator.ThrowIfNull(() => unitId);
            Validator.ThrowIfNull(() => rONo);

            //MarkTransient();

            Identity            = identity;
            FinishedGoodStockNo = finishedGoodStockNo;
            RONo         = rONo;
            Article      = article;
            UnitId       = unitId;
            UnitCode     = unitCode;
            UnitName     = unitName;
            ComodityId   = comodityId;
            ComodityCode = comodityCode;
            ComodityName = comodityName;
            SizeId       = sizeId;
            SizeName     = sizeName;
            Quantity     = quantity;
            UomId        = uomId;
            UomUnit      = uomUnit;
            BasicPrice   = basicPrice;
            Price        = price;

            ReadModel = new GarmentFinishedGoodStockReadModel(Identity)
            {
                FinishedGoodStockNo = FinishedGoodStockNo,
                RONo         = RONo,
                Article      = Article,
                UnitId       = UnitId.Value,
                UnitCode     = UnitCode,
                UnitName     = UnitName,
                ComodityId   = ComodityId.Value,
                ComodityCode = ComodityCode,
                ComodityName = ComodityName,
                SizeId       = SizeId.Value,
                SizeName     = SizeName,
                Quantity     = Quantity,
                UomId        = UomId.Value,
                UomUnit      = UomUnit,
                BasicPrice   = BasicPrice,
                Price        = Price
            };

            ReadModel.AddDomainEvent(new OnGarmentFinishedGoodStockPlaced(Identity));
        }
 public GarmentLoadingItem(GarmentLoadingItemReadModel readModel) : base(readModel)
 {
     LoadingId         = readModel.LoadingId;
     SewingDOItemId    = readModel.SewingDOItemId;
     ProductId         = new ProductId(readModel.ProductId);
     ProductCode       = readModel.ProductCode;
     ProductName       = readModel.ProductCode;
     DesignColor       = readModel.DesignColor;
     SizeId            = new SizeId(readModel.SizeId);
     SizeName          = readModel.SizeName;
     Quantity          = readModel.Quantity;
     UomId             = new UomId(readModel.UomId);
     UomUnit           = readModel.UomUnit;
     Color             = readModel.Color;
     RemainingQuantity = readModel.RemainingQuantity;
     BasicPrice        = readModel.BasicPrice;
     Price             = readModel.Price;
 }
Exemplo n.º 17
0
        public GarmentAdjustmentItem(Guid identity, Guid loadingId, Guid sewingDOItemId, Guid sewingInItemId, Guid finishingInItemId, Guid finishedGoodStockId, SizeId sizeId, string sizeName, ProductId productId, string productCode, string productName, string designColor, double quantity, double basicPrice, UomId uomId, string uomUnit, string color, double price) : base(identity)
        {
            Id                  = identity;
            AdjustmentId        = loadingId;
            SewingDOItemId      = sewingDOItemId;
            SewingInItemId      = sewingInItemId;
            FinishingInItemId   = finishingInItemId;
            FinishedGoodStockId = finishedGoodStockId;
            ProductId           = productId;
            ProductCode         = productCode;
            ProductName         = productCode;
            DesignColor         = designColor;
            SizeId              = sizeId;
            SizeName            = sizeName;
            Quantity            = quantity;
            UomId               = uomId;
            UomUnit             = uomUnit;
            Color               = color;
            BasicPrice          = basicPrice;
            Price               = price;

            ReadModel = new GarmentAdjustmentItemReadModel(Identity)
            {
                AdjustmentId        = loadingId,
                SewingDOItemId      = SewingDOItemId,
                SewingInItemId      = SewingInItemId,
                FinishedGoodStockId = FinishedGoodStockId,
                FinishingInItemId   = FinishingInItemId,
                ProductId           = ProductId.Value,
                ProductCode         = ProductCode,
                ProductName         = ProductName,
                DesignColor         = DesignColor,
                SizeId     = SizeId.Value,
                SizeName   = SizeName,
                Quantity   = Quantity,
                UomId      = UomId.Value,
                UomUnit    = UomUnit,
                Color      = Color,
                BasicPrice = BasicPrice,
                Price      = Price
            };

            ReadModel.AddDomainEvent(new OnGarmentAdjustmentPlaced(Identity));
        }
Exemplo n.º 18
0
 public GarmentFinishedGoodStock(GarmentFinishedGoodStockReadModel readModel) : base(readModel)
 {
     FinishedGoodStockNo = readModel.FinishedGoodStockNo;
     RONo         = readModel.RONo;
     Article      = readModel.Article;
     UnitId       = new UnitDepartmentId(readModel.UnitId);
     UnitCode     = readModel.UnitCode;
     UnitName     = readModel.UnitName;
     ComodityId   = new GarmentComodityId(readModel.ComodityId);
     ComodityCode = readModel.ComodityCode;
     ComodityName = readModel.ComodityName;
     SizeId       = new SizeId(readModel.SizeId);
     SizeName     = readModel.SizeName;
     Quantity     = readModel.Quantity;
     UomUnit      = readModel.UomUnit;
     UomId        = new UomId(readModel.UomId);
     BasicPrice   = readModel.BasicPrice;
     Price        = readModel.Price;
 }
Exemplo n.º 19
0
 public GarmentFinishingOutItem(GarmentFinishingOutItemReadModel readModel) : base(readModel)
 {
     FinishingOutId    = readModel.FinishingOutId;
     FinishingInId     = readModel.FinishingInId;
     FinishingInItemId = readModel.FinishingInItemId;
     ProductId         = new ProductId(readModel.ProductId);
     ProductCode       = readModel.ProductCode;
     ProductName       = readModel.ProductName;
     DesignColor       = readModel.DesignColor;
     SizeId            = new SizeId(readModel.SizeId);
     SizeName          = readModel.SizeName;
     Quantity          = readModel.Quantity;
     UomId             = new UomId(readModel.UomId);
     UomUnit           = readModel.UomUnit;
     Color             = readModel.Color;
     RemainingQuantity = readModel.RemainingQuantity;
     BasicPrice        = readModel.BasicPrice;
     Price             = readModel.Price;
 }
Exemplo n.º 20
0
 public GarmentAdjustmentItem(GarmentAdjustmentItemReadModel readModel) : base(readModel)
 {
     AdjustmentId        = readModel.AdjustmentId;
     SewingDOItemId      = readModel.SewingDOItemId;
     SewingInItemId      = readModel.SewingInItemId;
     FinishingInItemId   = readModel.FinishingInItemId;
     FinishedGoodStockId = readModel.FinishedGoodStockId;
     ProductId           = new ProductId(readModel.ProductId);
     ProductCode         = readModel.ProductCode;
     ProductName         = readModel.ProductCode;
     DesignColor         = readModel.DesignColor;
     SizeId     = new SizeId(readModel.SizeId);
     SizeName   = readModel.SizeName;
     Quantity   = readModel.Quantity;
     UomId      = new UomId(readModel.UomId);
     UomUnit    = readModel.UomUnit;
     Color      = readModel.Color;
     BasicPrice = readModel.BasicPrice;
     Price      = readModel.Price;
 }
        protected override void ExecuteWorkflowLogic()
        {
            var detailRecord = new Entity(ProductEntityName)
            {
                [ParentEntityLookupFieldName] = ParentEntity,
                ["quantity"]             = Quantity.Get(Context.ExecutionContext),
                ["description"]          = Description.Get(Context.ExecutionContext),
                ["manualdiscountamount"] = ManualDiscountAmount.Get(Context.ExecutionContext),
                ["tax"] = Tax.Get(Context.ExecutionContext)
            };

            var writeInProduct = ProductName.Get(Context.ExecutionContext);

            if (!string.IsNullOrEmpty(writeInProduct))
            {
                detailRecord["productdescription"]  = writeInProduct;
                detailRecord["isproductoverridden"] = true;
                detailRecord["ispriceoverridden"]   = true;
                detailRecord["priceperunit"]        = PricePerUnit.Get(Context.ExecutionContext);
            }
            else
            {
                detailRecord["productid"]           = ProductId.Get(Context.ExecutionContext);
                detailRecord["isproductoverridden"] = false;
                detailRecord["uomid"] = UomId.Get(Context.ExecutionContext);

                var ispriceoverridden = IsPriceOverridden.Get(Context.ExecutionContext);
                detailRecord["ispriceoverridden"] = ispriceoverridden;

                if (ispriceoverridden)
                {
                    detailRecord["priceperunit"] = PricePerUnit.Get(Context.ExecutionContext);
                }
            }

            ProcessAdditionalFields(ref detailRecord);

            Context.UserService.Create(detailRecord);
        }
        public GarmentFinishingOutDetail(Guid identity, Guid sewingOutItemId, SizeId sizeId, string sizeName, double quantity, UomId uomId, string uomUnit) : base(identity)
        {
            //MarkTransient();

            FinishingOutItemId = sewingOutItemId;
            SizeId             = sizeId;
            SizeName           = sizeName;
            Quantity           = quantity;
            UomId   = uomId;
            UomUnit = uomUnit;

            ReadModel = new GarmentFinishingOutDetailReadModel(Identity)
            {
                FinishingOutItemId = FinishingOutItemId,
                SizeId             = SizeId.Value,
                SizeName           = SizeName,
                Quantity           = Quantity,
                UomId   = UomId.Value,
                UomUnit = UomUnit
            };

            ReadModel.AddDomainEvent(new OnGarmentFinishingOutPlaced(Identity));
        }
Exemplo n.º 23
0
 public GarmentCuttingInDetail(GarmentCuttingInDetailReadModel readModel) : base(readModel)
 {
     CutInItemId       = readModel.CutInItemId;
     PreparingItemId   = readModel.PreparingItemId;
     SewingOutItemId   = readModel.SewingOutItemId;
     SewingOutDetailId = readModel.SewingOutDetailId;
     ProductId         = new ProductId(readModel.ProductId);
     ProductCode       = readModel.ProductCode;
     ProductName       = readModel.ProductName;
     DesignColor       = readModel.DesignColor;
     FabricType        = readModel.FabricType;
     PreparingQuantity = readModel.PreparingQuantity;
     PreparingUomId    = new UomId(readModel.PreparingUomId);
     PreparingUomUnit  = readModel.PreparingUomUnit;
     CuttingInQuantity = readModel.CuttingInQuantity;
     CuttingInUomId    = new UomId(readModel.CuttingInUomId);
     CuttingInUomUnit  = readModel.CuttingInUomUnit;
     RemainingQuantity = readModel.RemainingQuantity;
     BasicPrice        = readModel.BasicPrice;
     Price             = readModel.Price;
     FC    = readModel.FC;
     Color = readModel.Color;
 }
Exemplo n.º 24
0
        public GarmentPreparingItem(Guid identity, int uenItemId, ProductId productId, string productCode, string productName, string designColor, double quantity, UomId uomId, string uomUnit, string fabricType, double remainingQuantity, double basicPrice, Guid garmentPreparingId, string roSource) : base(identity)
        {
            this.MarkTransient();

            Identity           = identity;
            UENItemId          = uenItemId;
            ProductId          = productId;
            ProductCode        = productCode;
            ProductName        = productName;
            DesignColor        = designColor;
            Quantity           = quantity;
            UomId              = uomId;
            UomUnit            = uomUnit;
            FabricType         = fabricType;
            RemainingQuantity  = remainingQuantity;
            BasicPrice         = basicPrice;
            GarmentPreparingId = garmentPreparingId;
            ROSource           = roSource;

            ReadModel = new GarmentPreparingItemReadModel(Identity)
            {
                UENItemId          = UENItemId,
                ProductId          = ProductId.Value,
                ProductCode        = ProductCode,
                ProductName        = ProductName,
                DesignColor        = DesignColor,
                Quantity           = Quantity,
                UomId              = UomId.Value,
                UomUnit            = UomUnit,
                FabricType         = FabricType,
                RemainingQuantity  = RemainingQuantity,
                BasicPrice         = BasicPrice,
                GarmentPreparingId = GarmentPreparingId,
                ROSource           = roSource
            };
            ReadModel.AddDomainEvent(new OnGarmentPreparingPlaced(this.Identity));
        }
        public GarmentFinishedGoodStockHistory(Guid identity, Guid finishedGoodStockId, Guid finishingOutItemId, Guid finishingOutDetailId, Guid expenditureGoodId, Guid expenditureGoodItemId, Guid adjustmentId, Guid adjustmentItemId, Guid expenditureGoodReturnId, Guid expenditureGoodReturnItemId, string stockType, string rONo, string article, UnitDepartmentId unitId, string unitCode, string unitName, GarmentComodityId comodityId, string comodityCode, string comodityName, SizeId sizeId, string sizeName, UomId uomId, string uomUnit, double quantity, double basicPrice, double price) : base(identity)
        {
            Validator.ThrowIfNull(() => unitId);
            Validator.ThrowIfNull(() => rONo);

            //MarkTransient();

            Identity                    = identity;
            FinishedGoodStockId         = finishedGoodStockId;
            FinishingOutItemId          = finishingOutItemId;
            FinishingOutDetailId        = finishingOutDetailId;
            ExpenditureGoodId           = expenditureGoodId;
            ExpenditureGoodItemId       = expenditureGoodItemId;
            ExpenditureGoodReturnId     = expenditureGoodReturnId;
            ExpenditureGoodReturnItemId = expenditureGoodReturnItemId;
            AdjustmentId                = adjustmentId;
            AdjustmentItemId            = adjustmentItemId;
            StockType                   = stockType;
            RONo         = rONo;
            Article      = article;
            UnitId       = unitId;
            UnitCode     = unitCode;
            UnitName     = unitName;
            ComodityId   = comodityId;
            ComodityCode = comodityCode;
            ComodityName = comodityName;
            SizeId       = sizeId;
            SizeName     = sizeName;
            Quantity     = quantity;
            UomId        = uomId;
            UomUnit      = uomUnit;
            BasicPrice   = basicPrice;
            Price        = price;

            ReadModel = new GarmentFinishedGoodStockHistoryReadModel(Identity)
            {
                FinishedGoodStockId         = FinishedGoodStockId,
                FinishingOutItemId          = FinishingOutItemId,
                FinishingOutDetailId        = FinishingOutDetailId,
                ExpenditureGoodId           = ExpenditureGoodId,
                ExpenditureGoodItemId       = ExpenditureGoodItemId,
                ExpenditureGoodReturnId     = ExpenditureGoodReturnId,
                ExpenditureGoodReturnItemId = ExpenditureGoodReturnItemId,
                AdjustmentId     = AdjustmentId,
                AdjustmentItemId = AdjustmentItemId,
                StockType        = StockType,
                RONo             = RONo,
                Article          = Article,
                UnitId           = UnitId.Value,
                UnitCode         = UnitCode,
                UnitName         = UnitName,
                ComodityId       = ComodityId.Value,
                ComodityCode     = ComodityCode,
                ComodityName     = ComodityName,
                SizeId           = SizeId.Value,
                SizeName         = SizeName,
                Quantity         = Quantity,
                UomId            = UomId.Value,
                UomUnit          = UomUnit,
                BasicPrice       = BasicPrice,
                Price            = Price
            };

            ReadModel.AddDomainEvent(new OnGarmentFinishedGoodStockHistoryPlaced(Identity));
        }
Exemplo n.º 26
0
        public async Task <GarmentFinishingOut> Handle(PlaceGarmentFinishingOutCommand request, CancellationToken cancellationToken)
        {
            request.Items = request.Items.Where(item => item.IsSave == true).ToList();

            GarmentComodityPrice garmentComodityPrice = _garmentComodityPriceRepository.Query.Where(a => a.IsValid == true && a.UnitId == request.UnitTo.Id && a.ComodityId == request.Comodity.Id).Select(s => new GarmentComodityPrice(s)).Single();
            Guid garmentFinishingOutId = Guid.NewGuid();
            GarmentFinishingOut garmentFinishingOut = new GarmentFinishingOut(
                garmentFinishingOutId,
                GenerateFinOutNo(request),
                new UnitDepartmentId(request.UnitTo.Id),
                request.UnitTo.Code,
                request.UnitTo.Name,
                request.FinishingTo,
                request.FinishingOutDate.GetValueOrDefault(),
                request.RONo,
                request.Article,
                new UnitDepartmentId(request.Unit.Id),
                request.Unit.Code,
                request.Unit.Name,
                new GarmentComodityId(request.Comodity.Id),
                request.Comodity.Code,
                request.Comodity.Name,
                request.IsDifferentSize
                );

            Dictionary <Guid, double> finishingInItemToBeUpdated = new Dictionary <Guid, double>();

            Dictionary <string, double> finGood = new Dictionary <string, double>();

            foreach (var item in request.Items)
            {
                if (item.IsSave)
                {
                    Guid garmentFinishingOutItemId = Guid.NewGuid();
                    GarmentFinishingOutItem garmentFinishingOutItem = new GarmentFinishingOutItem(
                        garmentFinishingOutItemId,
                        garmentFinishingOut.Identity,
                        item.FinishingInId,
                        item.FinishingInItemId,
                        new ProductId(item.Product.Id),
                        item.Product.Code,
                        item.Product.Name,
                        item.DesignColor,
                        new SizeId(item.Size.Id),
                        item.Size.Size,
                        request.IsDifferentSize ? item.TotalQuantity : item.Quantity,
                        new UomId(item.Uom.Id),
                        item.Uom.Unit,
                        item.Color,
                        request.IsDifferentSize ? item.TotalQuantity : item.Quantity,
                        item.BasicPrice,
                        item.Price
                        );
                    item.Id = garmentFinishingOutItemId;
                    if (request.IsDifferentSize)
                    {
                        foreach (var detail in item.Details)
                        {
                            Guid garmentFinishingOutDetailId = Guid.NewGuid();
                            GarmentFinishingOutDetail garmentFinishingOutDetail = new GarmentFinishingOutDetail(
                                garmentFinishingOutDetailId,
                                garmentFinishingOutItem.Identity,
                                new SizeId(detail.Size.Id),
                                detail.Size.Size,
                                detail.Quantity,
                                new UomId(detail.Uom.Id),
                                detail.Uom.Unit
                                );
                            detail.Id = garmentFinishingOutDetailId;
                            if (finishingInItemToBeUpdated.ContainsKey(item.FinishingInItemId))
                            {
                                finishingInItemToBeUpdated[item.FinishingInItemId] += detail.Quantity;
                            }
                            else
                            {
                                finishingInItemToBeUpdated.Add(item.FinishingInItemId, detail.Quantity);
                            }

                            await _garmentFinishingOutDetailRepository.Update(garmentFinishingOutDetail);

                            if (request.FinishingTo == "GUDANG JADI")
                            {
                                string finStock = detail.Size.Id + "~" + detail.Size.Size + "~" + detail.Uom.Id + "~" + detail.Uom.Unit + "~" + item.BasicPrice;

                                if (finGood.ContainsKey(finStock))
                                {
                                    finGood[finStock] += detail.Quantity;
                                }
                                else
                                {
                                    finGood.Add(finStock, detail.Quantity);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (finishingInItemToBeUpdated.ContainsKey(item.FinishingInItemId))
                        {
                            finishingInItemToBeUpdated[item.FinishingInItemId] += item.Quantity;
                        }
                        else
                        {
                            finishingInItemToBeUpdated.Add(item.FinishingInItemId, item.Quantity);
                        }

                        if (request.FinishingTo == "GUDANG JADI")
                        {
                            string finStock = item.Size.Id + "~" + item.Size.Size + "~" + item.Uom.Id + "~" + item.Uom.Unit + "~" + item.BasicPrice;

                            if (finGood.ContainsKey(finStock))
                            {
                                finGood[finStock] += item.Quantity;
                            }
                            else
                            {
                                finGood.Add(finStock, item.Quantity);
                            }
                        }
                    }
                    await _garmentFinishingOutItemRepository.Update(garmentFinishingOutItem);
                }
            }

            foreach (var finInItem in finishingInItemToBeUpdated)
            {
                var garmentFinishingInItem = _garmentFinishingInItemRepository.Query.Where(x => x.Identity == finInItem.Key).Select(s => new GarmentFinishingInItem(s)).Single();
                garmentFinishingInItem.SetRemainingQuantity(garmentFinishingInItem.RemainingQuantity - finInItem.Value);
                garmentFinishingInItem.Modify();

                await _garmentFinishingInItemRepository.Update(garmentFinishingInItem);
            }

            if (request.FinishingTo == "GUDANG JADI")
            {
                int count = 1;
                List <GarmentFinishedGoodStock> finGoodStocks = new List <GarmentFinishedGoodStock>();
                foreach (var finGoodStock in finGood)
                {
                    SizeId sizeId     = new SizeId(Convert.ToInt32(finGoodStock.Key.Split("~")[0]));
                    string sizeName   = finGoodStock.Key.Split("~")[1];
                    UomId  uomId      = new UomId(Convert.ToInt32(finGoodStock.Key.Split("~")[2]));
                    string uomUnit    = finGoodStock.Key.Split("~")[3];
                    double basicPrice = Convert.ToDouble(finGoodStock.Key.Split("~")[4]);
                    var    garmentFinishedGoodExist = _garmentFinishedGoodStockRepository.Query.Where(
                        a => a.RONo == request.RONo &&
                        a.Article == request.Article &&
                        a.BasicPrice == basicPrice &&
                        a.UnitId == request.UnitTo.Id &&
                        new SizeId(a.SizeId) == sizeId &&
                        a.ComodityId == request.Comodity.Id &&
                        new UomId(a.UomId) == uomId
                        ).Select(s => new GarmentFinishedGoodStock(s)).SingleOrDefault();

                    double qty = garmentFinishedGoodExist == null ? finGoodStock.Value : (finGoodStock.Value + garmentFinishedGoodExist.Quantity);

                    double price = (basicPrice + (double)garmentComodityPrice.Price) * qty;

                    if (garmentFinishedGoodExist == null)
                    {
                        var now    = DateTime.Now;
                        var year   = now.ToString("yy");
                        var month  = now.ToString("MM");
                        var prefix = $"ST{request.UnitTo.Code.Trim()}{year}{month}";

                        var lastFnGoodNo = _garmentFinishedGoodStockRepository.Query.Where(w => w.FinishedGoodStockNo.StartsWith(prefix))
                                           .OrderByDescending(o => o.FinishedGoodStockNo)
                                           .Select(s => int.Parse(s.FinishedGoodStockNo.Replace(prefix, "")))
                                           .FirstOrDefault();
                        var FinGoodNo = $"{prefix}{(lastFnGoodNo + count).ToString("D4")}";
                        GarmentFinishedGoodStock finishedGood = new GarmentFinishedGoodStock(
                            Guid.NewGuid(),
                            FinGoodNo,
                            request.RONo,
                            request.Article,
                            new UnitDepartmentId(request.UnitTo.Id),
                            request.UnitTo.Code,
                            request.UnitTo.Name,
                            new GarmentComodityId(request.Comodity.Id),
                            request.Comodity.Code,
                            request.Comodity.Name,
                            sizeId,
                            sizeName,
                            uomId,
                            uomUnit,
                            qty,
                            basicPrice,
                            price
                            );
                        count++;
                        await _garmentFinishedGoodStockRepository.Update(finishedGood);

                        finGoodStocks.Add(finishedGood);
                    }
                    else
                    {
                        garmentFinishedGoodExist.SetQuantity(qty);
                        garmentFinishedGoodExist.SetPrice(price);
                        garmentFinishedGoodExist.Modify();

                        await _garmentFinishedGoodStockRepository.Update(garmentFinishedGoodExist);

                        var stock = finGoodStocks.Where(a => a.RONo == request.RONo &&
                                                        a.Article == request.Article &&
                                                        a.BasicPrice == garmentFinishedGoodExist.BasicPrice &&
                                                        a.UnitId == new UnitDepartmentId(request.UnitTo.Id) &&
                                                        a.SizeId == garmentFinishedGoodExist.SizeId &&
                                                        a.ComodityId == new GarmentComodityId(request.Comodity.Id) &&
                                                        a.UomId == garmentFinishedGoodExist.UomId).SingleOrDefault();
                        finGoodStocks.Add(garmentFinishedGoodExist);
                    }
                }

                foreach (var item in request.Items)
                {
                    if (item.IsSave)
                    {
                        if (request.IsDifferentSize)
                        {
                            foreach (var detail in item.Details)
                            {
                                var stock = finGoodStocks.Where(a => a.RONo == request.RONo &&
                                                                a.Article == request.Article &&
                                                                a.BasicPrice == item.BasicPrice &&
                                                                a.UnitId == new UnitDepartmentId(request.UnitTo.Id) &&
                                                                a.SizeId == new SizeId(detail.Size.Id) &&
                                                                a.ComodityId == new GarmentComodityId(request.Comodity.Id) &&
                                                                a.UomId == new UomId(detail.Uom.Id)).Single();

                                double price = (stock.BasicPrice + (double)garmentComodityPrice.Price) * detail.Quantity;

                                GarmentFinishedGoodStockHistory garmentFinishedGoodStockHistory = new GarmentFinishedGoodStockHistory(
                                    Guid.NewGuid(),
                                    stock.Identity,
                                    item.Id,
                                    detail.Id,
                                    Guid.Empty,
                                    Guid.Empty,
                                    Guid.Empty,
                                    Guid.Empty,
                                    Guid.Empty,
                                    Guid.Empty,
                                    "IN",
                                    stock.RONo,
                                    stock.Article,
                                    stock.UnitId,
                                    stock.UnitCode,
                                    stock.UnitName,
                                    stock.ComodityId,
                                    stock.ComodityCode,
                                    stock.ComodityName,
                                    stock.SizeId,
                                    stock.SizeName,
                                    stock.UomId,
                                    stock.UomUnit,
                                    detail.Quantity,
                                    stock.BasicPrice,
                                    price
                                    );
                                await _garmentFinishedGoodStockHistoryRepository.Update(garmentFinishedGoodStockHistory);
                            }
                        }
                        else
                        {
                            var stock = finGoodStocks.Where(a => a.RONo == request.RONo &&
                                                            a.Article == request.Article &&
                                                            a.BasicPrice == item.BasicPrice &&
                                                            a.UnitId == new UnitDepartmentId(request.UnitTo.Id) &&
                                                            a.SizeId == new SizeId(item.Size.Id) &&
                                                            a.ComodityId == new GarmentComodityId(request.Comodity.Id) &&
                                                            a.UomId == new UomId(item.Uom.Id)).Single();

                            double price = (stock.BasicPrice + (double)garmentComodityPrice.Price) * item.Quantity;

                            GarmentFinishedGoodStockHistory garmentFinishedGoodStockHistory = new GarmentFinishedGoodStockHistory(
                                Guid.NewGuid(),
                                stock.Identity,
                                item.Id,
                                Guid.Empty,
                                Guid.Empty,
                                Guid.Empty,
                                Guid.Empty,
                                Guid.Empty,
                                Guid.Empty,
                                Guid.Empty,
                                "IN",
                                stock.RONo,
                                stock.Article,
                                stock.UnitId,
                                stock.UnitCode,
                                stock.UnitName,
                                stock.ComodityId,
                                stock.ComodityCode,
                                stock.ComodityName,
                                stock.SizeId,
                                stock.SizeName,
                                stock.UomId,
                                stock.UomUnit,
                                item.Quantity,
                                stock.BasicPrice,
                                price
                                );
                            await _garmentFinishedGoodStockHistoryRepository.Update(garmentFinishedGoodStockHistory);
                        }
                    }
                }
            }

            await _garmentFinishingOutRepository.Update(garmentFinishingOut);

            _storage.Save();

            return(garmentFinishingOut);
        }