Ejemplo n.º 1
0
 private async Task <int> CreateItem(MaterialsRequestNote_Item item)
 {
     item.FlagForCreate(IdentityService.Username, UserAgent);
     item.FlagForUpdate(IdentityService.Username, UserAgent);
     DbContext.MaterialsRequestNote_Items.Add(item);
     return(await DbContext.SaveChangesAsync());
 }
Ejemplo n.º 2
0
        public override async Task <int> UpdateModel(int Id, MaterialsRequestNote Model)
        {
            MaterialsRequestNote_ItemService materialsRequestNote_ItemService = this.ServiceProvider.GetService <MaterialsRequestNote_ItemService>();

            materialsRequestNote_ItemService.Username = this.Username;

            int Updated = 0;

            using (var transaction = this.DbContext.Database.BeginTransaction())
            {
                try
                {
                    HashSet <int> materialsRequestNote_Items = new HashSet <int>(materialsRequestNote_ItemService.DbSet
                                                                                 .Where(w => w.MaterialsRequestNoteId.Equals(Id))
                                                                                 .Select(s => s.Id));
                    Updated = await this.UpdateAsync(Id, Model);


                    foreach (int materialsRequestNote_Item in materialsRequestNote_Items)
                    {
                        MaterialsRequestNote_Item model = Model.MaterialsRequestNote_Items.FirstOrDefault(prop => prop.Id.Equals(materialsRequestNote_Item));
                        if (model == null)
                        {
                            await materialsRequestNote_ItemService.DeleteModel(materialsRequestNote_Item);
                        }
                        else
                        {
                            await materialsRequestNote_ItemService.UpdateModel(materialsRequestNote_Item, model);
                        }
                    }

                    foreach (MaterialsRequestNote_Item materialsRequestNote_Item in Model.MaterialsRequestNote_Items)
                    {
                        if (materialsRequestNote_Item.Id.Equals(0))
                        {
                            await materialsRequestNote_ItemService.CreateModel(materialsRequestNote_Item);
                        }
                    }

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                }
            }

            return(Updated);
        }
Ejemplo n.º 3
0
        public MaterialsRequestNote MapToModel(MaterialsRequestNoteViewModel viewModel)
        {
            MaterialsRequestNote model = new MaterialsRequestNote();

            PropertyCopier <MaterialsRequestNoteViewModel, MaterialsRequestNote> .Copy(viewModel, model);

            model.UnitId      = viewModel.Unit._id;
            model.UnitCode    = viewModel.Unit.code;
            model.UnitName    = viewModel.Unit.name;
            model.RequestType = viewModel.RequestType;
            model.Remark      = viewModel.Remark;

            model.MaterialsRequestNote_Items = new List <MaterialsRequestNote_Item>();

            foreach (MaterialsRequestNote_ItemViewModel materialsRequestNote_ItemViewModel in viewModel.MaterialsRequestNote_Items)
            {
                MaterialsRequestNote_Item materialsRequestNote_Item = new MaterialsRequestNote_Item();

                PropertyCopier <MaterialsRequestNote_ItemViewModel, MaterialsRequestNote_Item> .Copy(materialsRequestNote_ItemViewModel, materialsRequestNote_Item);

                if (!viewModel.RequestType.Equals("PEMBELIAN") && !viewModel.RequestType.Equals("TEST"))
                {
                    materialsRequestNote_Item.ProductionOrderId          = materialsRequestNote_ItemViewModel.ProductionOrder._id;
                    materialsRequestNote_Item.ProductionOrderNo          = materialsRequestNote_ItemViewModel.ProductionOrder.orderNo;
                    materialsRequestNote_Item.ProductionOrderIsCompleted = materialsRequestNote_ItemViewModel.ProductionOrder.isCompleted;
                    materialsRequestNote_Item.OrderQuantity = (double)materialsRequestNote_ItemViewModel.ProductionOrder.orderQuantity;
                    materialsRequestNote_Item.OrderTypeId   = materialsRequestNote_ItemViewModel.ProductionOrder.orderType._id;
                    materialsRequestNote_Item.OrderTypeCode = materialsRequestNote_ItemViewModel.ProductionOrder.orderType.code;
                    materialsRequestNote_Item.OrderTypeName = materialsRequestNote_ItemViewModel.ProductionOrder.orderType.name;
                }

                materialsRequestNote_Item.ProductId         = materialsRequestNote_ItemViewModel.Product._id;
                materialsRequestNote_Item.ProductCode       = materialsRequestNote_ItemViewModel.Product.code;
                materialsRequestNote_Item.ProductName       = materialsRequestNote_ItemViewModel.Product.name;
                materialsRequestNote_Item.Length            = materialsRequestNote_ItemViewModel.Length != null ? (double)materialsRequestNote_ItemViewModel.Length : 0;
                materialsRequestNote_Item.DistributedLength = materialsRequestNote_ItemViewModel.DistributedLength != null ? (double)materialsRequestNote_ItemViewModel.DistributedLength : 0;

                model.MaterialsRequestNote_Items.Add(materialsRequestNote_Item);
            }

            return(model);
        }
Ejemplo n.º 4
0
 private async Task <int> DeleteItem(MaterialsRequestNote_Item item)
 {
     item.FlagForDelete(IdentityService.Username, UserAgent);
     return(await DbContext.SaveChangesAsync());
 }
Ejemplo n.º 5
0
        public override async Task <int> UpdateModel(int Id, MaterialsRequestNote Model)
        {
            MaterialsRequestNote_ItemService materialsRequestNote_ItemService = this.ServiceProvider.GetService <MaterialsRequestNote_ItemService>();

            materialsRequestNote_ItemService.Username = this.Username;

            int Updated = 0;

            using (var transaction = this.DbContext.Database.BeginTransaction())
            {
                try
                {
                    HashSet <object> materialsRequestNote_Items = new HashSet <object>(materialsRequestNote_ItemService.DbSet
                                                                                       .Where(w => w.MaterialsRequestNoteId.Equals(Id))
                                                                                       .AsNoTracking());
                    //.Select(s => new { Id = s.Id, ProductionOrderId = s.ProductionOrderId }));

                    Updated = await this.UpdateAsync(Id, Model);

                    List <string> productionOrderIds    = new List <string>();
                    List <string> newProductionOrderIds = new List <string>();
                    List <MaterialsRequestNote_Item> itemForUpdateInventory = new List <MaterialsRequestNote_Item>();

                    foreach (dynamic materialsRequestNote_Item in materialsRequestNote_Items)
                    {
                        MaterialsRequestNote_Item model = Model.MaterialsRequestNote_Items.FirstOrDefault <dynamic>(prop => prop.Id.Equals(materialsRequestNote_Item.Id));
                        if (model == null)
                        {
                            await materialsRequestNote_ItemService.DeleteModel(materialsRequestNote_Item.Id);

                            productionOrderIds.Add(materialsRequestNote_Item.ProductionOrderId);
                            itemForUpdateInventory.Add(materialsRequestNote_Item);
                        }
                        else
                        {
                            double length = materialsRequestNote_Item.Length - model.Length;
                            materialsRequestNote_Item.Length = length;
                            itemForUpdateInventory.Add(materialsRequestNote_Item);
                            await materialsRequestNote_ItemService.UpdateModel(materialsRequestNote_Item.Id, model);
                        }
                    }

                    foreach (MaterialsRequestNote_Item materialsRequestNote_Item in Model.MaterialsRequestNote_Items)
                    {
                        if (materialsRequestNote_Item.Id.Equals(0))
                        {
                            await materialsRequestNote_ItemService.CreateModel(materialsRequestNote_Item);

                            newProductionOrderIds.Add(materialsRequestNote_Item.ProductionOrderId);
                            double length = materialsRequestNote_Item.Length * -1;
                            materialsRequestNote_Item.Length = length;
                            itemForUpdateInventory.Add(materialsRequestNote_Item);
                        }
                    }

                    if (Model.RequestType != "PEMBELIAN")
                    {
                        Model.MaterialsRequestNote_Items = itemForUpdateInventory;
                        this.CreateInventoryDocument(Model, "IN");
                    }

                    UpdateIsRequestedProductionOrder(productionOrderIds, "UPDATE");
                    UpdateIsRequestedProductionOrder(newProductionOrderIds, "CREATE");
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                }
            }

            return(Updated);
        }