コード例 #1
0
        private GarmentInventoryMovement GenerateGarmentInventoryMovement(GarmentUnitReceiptNote garmentUnitReceiptNote, GarmentUnitReceiptNoteItem garmentUnitReceiptNoteItem, GarmentInventorySummary garmentInventorySummary, string type = "IN")
        {
            var garmentInventoryMovement = new GarmentInventoryMovement();

            EntityExtension.FlagForCreate(garmentInventoryMovement, identityService.Username, USER_AGENT);
            do
            {
                garmentInventoryMovement.No = CodeGenerator.Generate();
            }while (dbSetGarmentInventoryMovement.Any(m => m.No == garmentInventoryMovement.No));

            garmentInventoryMovement.Date = garmentInventoryMovement.CreatedUtc;

            garmentInventoryMovement.ReferenceNo   = garmentUnitReceiptNote.URNNo;
            garmentInventoryMovement.ReferenceType = string.Concat("Bon Terima Unit - ", garmentUnitReceiptNote.UnitName);

            garmentInventoryMovement.ProductId   = garmentUnitReceiptNoteItem.ProductId;
            garmentInventoryMovement.ProductCode = garmentUnitReceiptNoteItem.ProductCode;
            garmentInventoryMovement.ProductName = garmentUnitReceiptNoteItem.ProductName;

            garmentInventoryMovement.StorageId   = garmentUnitReceiptNote.StorageId;
            garmentInventoryMovement.StorageCode = garmentUnitReceiptNote.StorageCode;
            garmentInventoryMovement.StorageName = garmentUnitReceiptNote.StorageName;

            garmentInventoryMovement.StockPlanning = 0;

            garmentInventoryMovement.Before   = garmentInventorySummary == null ? 0 : garmentInventorySummary.Quantity;
            garmentInventoryMovement.Quantity = garmentUnitReceiptNoteItem.SmallQuantity * ((type ?? "").ToUpper() == "OUT" ? -1 : 1);
            garmentInventoryMovement.After    = garmentInventoryMovement.Before + garmentInventoryMovement.Quantity;

            garmentInventoryMovement.UomId   = garmentUnitReceiptNoteItem.SmallUomId;
            garmentInventoryMovement.UomUnit = garmentUnitReceiptNoteItem.SmallUomUnit;

            garmentInventoryMovement.Remark = garmentUnitReceiptNoteItem.ProductRemark;

            garmentInventoryMovement.Type = (type ?? "").ToUpper() == "IN" ? "IN" : "OUT";

            return(garmentInventoryMovement);
        }
        public async Task <int> DistributeCC(List <long> listId, string user)
        {
            int Updated = 0;

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    var listData = DbSet.
                                   Where(w => listId.Contains(w.Id))
                                   .ToList();

                    foreach (var data in listData)
                    {
                        EntityExtension.FlagForUpdate(data, user, USER_AGENT);
                        data.IsRODistributed    = true;
                        data.RODistributionDate = DateTimeOffset.Now;
                        data.RODistributionBy   = user;
                    }

                    Updated = await DbContext.SaveChangesAsync();

                    if (Updated < 1)
                    {
                        throw new Exception("No data updated");
                    }

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

            return(Updated);
        }
コード例 #3
0
        public int Delete(int id, string username)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var model = this.dbSet
                                .Include(d => d.Items)
                                .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);

                    EntityExtension.FlagForDelete(model, username, USER_AGENT);

                    foreach (var item in model.Items)
                    {
                        GarmentDeliveryOrder deliveryOrder = dbSetDeliveryOrder.FirstOrDefault(s => s.Id == item.GarmentDOId);
                        if (deliveryOrder != null)
                        {
                            deliveryOrder.BillNo      = null;
                            deliveryOrder.PaymentBill = null;
                            deliveryOrder.CustomsId   = 0;
                            EntityExtension.FlagForDelete(item, username, USER_AGENT);
                        }
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
        public int Delete(int id, string user)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var m = this.dbSet
                            .Include(d => d.Items)
                            .ThenInclude(d => d.Details)
                            .SingleOrDefault(epo => epo.Id == id && !epo.IsDeleted);

                    EntityExtension.FlagForDelete(m, user, "Facade");

                    foreach (var item in m.Items)
                    {
                        EntityExtension.FlagForDelete(item, user, "Facade");
                        foreach (var detail in item.Details)
                        {
                            ExternalPurchaseOrderDetail epoDetail = this.dbContext.ExternalPurchaseOrderDetails.Where(s => s.Id.ToString() == detail.EPODetailId && s.IsDeleted == false).FirstOrDefault();
                            epoDetail.DispositionQuantity -= detail.PaidQuantity;
                            EntityExtension.FlagForDelete(detail, user, "Facade");
                        }
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
コード例 #5
0
        public async Task <IActionResult> PutFamilyData(int id, [FromBody] FamilyDataFormViewModel familyData)
        {
            /*if (id != familyData.Id)
             * {
             *  return BadRequest();
             * }*/

            try
            {
                VerifyUser();
                var model = await _context.FamilyDatas.FindAsync(id);

                {
                    model.FullNameOfFamily = familyData.FullNameOfFamily;
                    model.Relationship     = familyData.Relationship;
                    model.DOBFamily        = familyData.DOBFamily;
                    model.Gender           = familyData.Gender;
                    model.Religion         = familyData.Religion;
                    model.KTPNumber        = familyData.KTPNumber;
                };
                EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);
                _context.FamilyDatas.Update(model);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AccountProfileExist(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #6
0
        public async Task <int> UpdateAsync(int id, ShipmentDocumentModel model)
        {
            EntityExtension.FlagForUpdate(model, _IdentityService.Username, _UserAgent);
            _DbSet.Update(model);
            foreach (var detail in model.Details)
            {
                EntityExtension.FlagForUpdate(detail, _IdentityService.Username, _UserAgent);
                _DetailDbSet.Update(detail);
                foreach (var item in detail.Items)
                {
                    EntityExtension.FlagForUpdate(item, _IdentityService.Username, _UserAgent);
                    _ItemDbSet.Update(item);
                    foreach (var packingReceiptItem in item.PackingReceiptItems)
                    {
                        EntityExtension.FlagForUpdate(packingReceiptItem, _IdentityService.Username, _UserAgent);
                        _PackingReceiptItemDbSet.Update(packingReceiptItem);
                    }
                }
            }

            CreateInventoryDocumentIn(model);
            return(await _DbContext.SaveChangesAsync());
        }
コード例 #7
0
        internal void UnpostRO(long id)
        {
            var model = DbSet.Single(m => m.Id == id);

            model.IsPosted = false;
            EntityExtension.FlagForUpdate(model, IdentityService.Username, "sales-service");

            var cc = DbContext.CostCalculationGarments.Single(m => m.Id == model.CostCalculationGarmentId);

            cc.IsValidatedROPPIC  = false;
            cc.ValidationPPICBy   = null;
            cc.ValidationPPICDate = DateTimeOffset.MinValue;

            cc.IsValidatedROSample  = false;
            cc.ValidationSampleBy   = null;
            cc.ValidationSampleDate = DateTimeOffset.MinValue;

            cc.IsValidatedROMD  = false;
            cc.ValidationMDBy   = null;
            cc.ValidationMDDate = DateTimeOffset.MinValue;

            EntityExtension.FlagForUpdate(cc, IdentityService.Username, "sales-service");
        }
        public async Task <int> CreateAsync(OthersExpenditureProofDocumentCreateUpdateViewModel viewModel)
        {
            var model = viewModel.MapToModel();

            model.DocumentNo = DocumentNoGenerator(viewModel);
            EntityExtension.FlagForCreate(model, _identityService.Username, _userAgent);
            _dbSet.Add(model);
            await _dbContext.SaveChangesAsync();

            var itemModels = viewModel.MapItemToModel().Select(item =>
            {
                EntityExtension.FlagForCreate(item, _identityService.Username, _userAgent);
                item.OthersExpenditureProofDocumentId = model.Id;
                return(item);
            }).ToList();

            _itemDbSet.UpdateRange(itemModels);
            await _dbContext.SaveChangesAsync();

            await _autoJournalService.AutoJournalFromOthersExpenditureProof(viewModel, model.DocumentNo);

            return(_taskDone);
        }
コード例 #9
0
        public async Task <ActionResult <Payroll> > PostPayslips([FromBody] PayslipFormViewModel payslip)
        {
            VerifyUser();
            var model = new Payroll()
            {
                SalaryPeriod      = payslip.SalaryPeriod,
                Bank              = payslip.Bank,
                BankAccountNumber = payslip.BankAccountNumber,
                Salary            = payslip.Salary,
                BackDatedPayment  = payslip.BackDatedPayment,
                Allowance         = payslip.Allowance,
                Incentive         = payslip.Incentive,
                PaidLeave         = payslip.PaidLeave,
                BPJSKesehatan     = payslip.BPJSKesehatan,
                BPJSTenagaKerja   = payslip.BPJSTenagaKerja,
            };

            EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent);
            _context.Payrolls.Add(model);
            await _context.SaveChangesAsync();

            return(Created("", model));
        }
コード例 #10
0
        //private string DocumentNoGenerator(OthersExpenditureProofDocumentCreateUpdateViewModel viewModel)
        //{
        //    var latestDocumentNo = _dbSet.IgnoreQueryFilters().Where(document => document.DocumentNo.Contains(viewModel.AccountBankCode)).OrderByDescending(document => document.Id).Select(document => new { document.DocumentNo, document.CreatedUtc }).FirstOrDefault();

        //    var now = DateTimeOffset.Now;
        //    if (latestDocumentNo == null)
        //    {
        //        return $"{now.ToString("yy")}{now.ToString("MM")}{viewModel.AccountBankCode}K0001";
        //    }
        //    else
        //    {
        //        if (latestDocumentNo.CreatedUtc.Month != now.Month)
        //            return $"{now.ToString("yy")}{now.ToString("MM")}{viewModel.AccountBankCode}K0001";
        //        else
        //        {
        //            var numberString = latestDocumentNo.DocumentNo.Split("K").ToList()[1];
        //            var number = int.Parse(numberString) + 1;
        //            return $"{now.ToString("yy")}{now.ToString("MM")}{viewModel.AccountBankCode}K{number.ToString().PadLeft(4, '0')}";
        //        }
        //    }
        //}

        public async Task <int> DeleteAsync(int id)
        {
            var model = _dbSet.FirstOrDefault(document => document.Id == id);

            EntityExtension.FlagForDelete(model, _identityService.Username, _userAgent);
            _dbSet.Update(model);

            var itemModels = _itemDbSet.Where(item => item.OthersExpenditureProofDocumentId == id).ToList();

            itemModels = itemModels.Select(item =>
            {
                EntityExtension.FlagForDelete(item, _identityService.Username, _userAgent);
                return(item);
            }).ToList();
            _itemDbSet.UpdateRange(itemModels);

            await _dbContext.SaveChangesAsync();

            //await _autoJournalService.AutoJournalReverseFromOthersExpenditureProof(model.DocumentNo);
            //await _autoDailyBankTransactionService.AutoRevertFromOthersExpenditureProofDocument(model, itemModels);

            return(_taskDone);
        }
コード例 #11
0
        public void Should_Success_getExcelDispoNull()
        {
            var serviceProviderMock = GetServiceProvider();
            var dbContext           = GetDbContext(GetCurrentMethod());

            var service = new GarmentInvoicePurchasingDispositionService(serviceProviderMock.Object, dbContext);

            var model = new GarmentInvoicePurchasingDispositionModel()
            {
                InvoiceDate = DateTimeOffset.Now, InvoiceNo = "Test", SupplierName = "Test", CurrencyCode = "Code", BankName = "BankName", Items = new List <GarmentInvoicePurchasingDispositionItemModel>()
                {
                    new GarmentInvoicePurchasingDispositionItemModel(0, 1, "Test")
                }
            };

            EntityExtension.FlagForCreate(model, "Test", "Test");
            dbContext.GarmentInvoicePurchasingDispositions.Add(model);
            dbContext.SaveChanges();

            var result = service.DownloadReportXls("Test", null, DateTimeOffset.Now.AddDays(-1), DateTimeOffset.Now);

            Assert.NotNull(result);
        }
コード例 #12
0
        public async Task Should_Success_Create_Paid_Before_Empty()
        {
            var serviceProviderMock = GetServiceProvider();
            var dbContext           = GetDbContext(GetCurrentMethod());

            var service = new GarmentInvoicePurchasingDispositionService(serviceProviderMock.Object, dbContext);

            var expedition = new GarmentDispositionExpeditionModel();

            EntityExtension.FlagForCreate(expedition, "Test", "Test");
            dbContext.GarmentDispositionExpeditions.Add(expedition);
            dbContext.SaveChanges();

            var result = await service.CreateAsync(new GarmentInvoicePurchasingDispositionModel()
            {
                InvoiceNo = "Test", SupplierName = "Test", CurrencyCode = "Code", BankName = "BankName", Items = new List <GarmentInvoicePurchasingDispositionItemModel>()
                {
                    new GarmentInvoicePurchasingDispositionItemModel(-1, expedition.Id, "Test")
                }
            });

            Assert.NotEqual(0, result);
        }
コード例 #13
0
        public int Delete(int id, string user)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var m = this.dbSet
                            .Include(d => d.Items)
                            .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);
                    EntityExtension.FlagForDelete(m, user, "Facade");

                    foreach (var item in m.Items)
                    {
                        var n = this.dbContext.InternalPurchaseOrderItems
                                .Count(pr => pr.PRItemId == item.PRItemId && !pr.IsDeleted);
                        if (n == 1)
                        {
                            PurchaseRequestItem purchaseRequestItem = this.dbContext.PurchaseRequestItems.FirstOrDefault(s => s.Id == item.PRItemId);
                            purchaseRequestItem.Status = "Belum diterima Pembelian";
                        }
                        EntityExtension.FlagForDelete(item, user, "Facade");
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
コード例 #14
0
        public async Task <IActionResult> PutAssets(int id, [FromBody] AssetFormViewModel asset)
        {
            /*if (id != informalEducation.Id)
             * {
             *  return BadRequest();
             * }*/

            try
            {
                VerifyUser();
                var model = await _context.Assets.FindAsync(id);

                {
                    model.AssetNumber           = asset.AssetNumber;
                    model.AssetName             = asset.AssetName;
                    model.AssetType             = asset.AssetType;
                    model.FullNameEmployeeAsset = asset.FullNameEmployeeAsset;
                    model.AcquisitionDate       = asset.AcquisitionDate;
                };
                EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);
                _context.Assets.Update(model);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!assetExist(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #15
0
        public async Task <IActionResult> PutWorkingExperience(int id, [FromBody] WorkingExperienceFormViewModel workingExperience)
        {
            /*if (id != workingExperience.Id)
             * {
             *  return BadRequest();
             * }*/

            try
            {
                VerifyUser();
                var model = await _context.WorkingExperiences.FindAsync(id);

                {
                    model.Company = workingExperience.Company;
                    model.JobPositionExperience = workingExperience.JobPositionExperience;
                    model.TanggalMulai          = workingExperience.TanggalMulai;
                    model.TanggalSelesai        = workingExperience.TanggalSelesai;
                    model.Deskripsi             = workingExperience.Deskripsi;
                };
                EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);
                _context.WorkingExperiences.Update(model);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!WorkingExperienceExist(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #16
0
        public async Task <IActionResult> PutInformalEducation(int id, [FromBody] InformalEducationFormViewModel informalEducation)
        {
            /*if (id != informalEducation.Id)
             * {
             *  return BadRequest();
             * }*/

            try
            {
                VerifyUser();
                var model = await _context.InformalEducations.FindAsync(id);

                {
                    model.Description = informalEducation.Description;
                    model.JobPosition = informalEducation.JobPosition;
                    model.EndDate     = informalEducation.EndDate;
                    model.HeldBy      = informalEducation.HeldBy;
                    model.StartDate   = informalEducation.StartDate;
                };
                EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);
                _context.InformalEducations.Update(model);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InformalEducationExist(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public int Update(int id, FormDto form)
        {
            var model = _dbContext.VBRealizationDocuments.FirstOrDefault(entity => entity.Id == id);
            model.UpdatePosition(VBRealizationPosition.Purchasing, _identityService.Username, UserAgent);
            model.SetRemark(form.Remark);

            if (form.VBRequestDocument != null && form.VBRequestDocument.Id.GetValueOrDefault() > 0)
            {
                var vbRequest = _dbContext.VBRequestDocuments.FirstOrDefault(entity => entity.Id == form.VBRequestDocument.Id.GetValueOrDefault());
                model.Update(vbRequest);
                EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);
            }

            var httpClientService = _serviceProvider.GetService<IHttpClientService>();

            var items = _dbContext.VBRealizationDocumentExpenditureItems.Where(entity => entity.VBRealizationDocumentId == id).ToList();
            items = items.Select(element =>
            {
                EntityExtension.FlagForDelete(element, _identityService.Username, UserAgent);
                var result = httpClientService.PutAsync($"{APIEndpoint.Purchasing}vb-request-po-external/spb/{element.UnitPaymentOrderId}?division={model.SuppliantDivisionName}", new StringContent("{}", Encoding.UTF8, General.JsonMediaType)).Result;
                return element;
            }).ToList();
            _dbContext.VBRealizationDocumentExpenditureItems.UpdateRange(items);

            var details = _dbContext.VBRealizationDocumentUnitCostsItems.Where(entity => entity.VBRealizationDocumentId == id).ToList();
            details = details.Select(element =>
            {
                EntityExtension.FlagForDelete(element, _identityService.Username, UserAgent);
                return element;
            }).ToList();
            _dbContext.VBRealizationDocumentUnitCostsItems.UpdateRange(details);

            AddItems(id, form.Items, form.SuppliantUnit.Division.Name);
            AddUnitCosts(model.Id, form.Items.SelectMany(element => element.UnitPaymentOrder.UnitCosts).ToList());

            return id;
        }
コード例 #18
0
        public async Task <IActionResult> PutEducationInfo(int id, [FromBody] EducationInfoFormViewModel educationInfo)
        {
            /*if (id != educationInfo.Id)
             * {
             *  return BadRequest();
             * }*/

            try
            {
                VerifyUser();
                var model = await _context.EducationInfos.FindAsync(id);

                {
                    model.Grade       = educationInfo.Grade;
                    model.Majors      = educationInfo.Majors;
                    model.Institution = educationInfo.Institution;
                    model.YearStart   = educationInfo.YearStart;
                    model.YearEnd     = educationInfo.YearEnd;
                };
                EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);
                _context.EducationInfos.Update(model);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EducationInfoExist(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #19
0
        public async Task <int> Create(GarmentUnitDeliveryOrder m, string user, int clientTimeZoneOffset = 7)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(m, user, USER_AGENT);

                    m.UnitDONo = await GenerateNo(m, clientTimeZoneOffset);

                    foreach (var item in m.Items)
                    {
                        GarmentUnitReceiptNoteItem garmentUnitReceiptNote = this.dbContext.GarmentUnitReceiptNoteItems.FirstOrDefault(s => s.Id == item.URNItemId);
                        if (garmentUnitReceiptNote != null)
                        {
                            garmentUnitReceiptNote.OrderQuantity = garmentUnitReceiptNote.OrderQuantity + (decimal)item.Quantity;
                        }
                        EntityExtension.FlagForCreate(item, user, USER_AGENT);
                    }

                    this.dbSet.Add(m);

                    Created = await dbContext.SaveChangesAsync();

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

            return(Created);
        }
        public int CreateWithPO(VBRequestDocumentWithPOFormDto form)
        {
            var existingData = _dbContext.VBRequestDocuments.Where(a => a.Date.AddHours(_identityService.TimezoneOffset).Month == form.Date.GetValueOrDefault().AddHours(_identityService.TimezoneOffset).Month).OrderByDescending(s => s.Index).FirstOrDefault();
            var documentNo   = GetDocumentNo(form, existingData);

            var model = new VBRequestDocumentModel(
                documentNo.Item1,
                form.Date.GetValueOrDefault(),
                form.RealizationEstimationDate.GetValueOrDefault(),
                form.SuppliantUnit.Id.GetValueOrDefault(),
                form.SuppliantUnit.Code,
                form.SuppliantUnit.Name,
                form.SuppliantUnit.Division.Id.GetValueOrDefault(),
                form.SuppliantUnit.Division.Code,
                form.SuppliantUnit.Division.Name,
                form.Currency.Id.GetValueOrDefault(),
                form.Currency.Code,
                form.Currency.Symbol,
                form.Currency.Description,
                form.Currency.Rate.GetValueOrDefault(),
                form.Purpose,
                form.Amount.GetValueOrDefault(),
                false,
                false,
                VBType.WithPO,
                documentNo.Item2,
                form.IsInklaring
                );

            EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent);
            _dbContext.VBRequestDocuments.Add(model);
            _dbContext.SaveChanges();

            AddItems(model.Id, form.Items);

            return(model.Id);
        }
コード例 #21
0
        public override async void UpdateAsync(long id, SalesInvoiceModel model)
        {
            try
            {
                if (model.SalesInvoiceDetails != null)
                {
                    HashSet <long> detailIds = salesInvoiceDetailLogic.GetIds(id);
                    foreach (var itemId in detailIds)
                    {
                        SalesInvoiceDetailModel data = model.SalesInvoiceDetails.FirstOrDefault(prop => prop.Id.Equals(itemId));
                        if (data == null)
                        {
                            await salesInvoiceDetailLogic.DeleteAsync(itemId);
                        }
                        else
                        {
                            salesInvoiceDetailLogic.UpdateAsync(itemId, data);
                        }
                    }

                    foreach (SalesInvoiceDetailModel item in model.SalesInvoiceDetails)
                    {
                        if (item.Id == 0)
                        {
                            salesInvoiceDetailLogic.Create(item);
                        }
                    }
                }

                EntityExtension.FlagForUpdate(model, IdentityService.Username, "sales-service");
                DbSet.Update(model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #22
0
        public async Task <int> Create(PurchasingDisposition m, string user, int clientTimeZoneOffset)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(m, user, "Facade");
                    m.DispositionNo = await GenerateNo(m, clientTimeZoneOffset);

                    m.Position = 1;
                    foreach (var item in m.Items)
                    {
                        EntityExtension.FlagForCreate(item, user, "Facade");
                        foreach (var detail in item.Details)
                        {
                            ExternalPurchaseOrderDetail epoDetail = this.dbContext.ExternalPurchaseOrderDetails.Where(s => s.Id.ToString() == detail.EPODetailId && s.IsDeleted == false).FirstOrDefault();
                            epoDetail.DispositionQuantity += detail.PaidQuantity;
                            EntityExtension.FlagForCreate(detail, user, "Facade");
                        }
                    }

                    this.dbSet.Add(m);
                    Created = await dbContext.SaveChangesAsync();

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

            return(Created);
        }
コード例 #23
0
        public int EPOApprove(List <GarmentExternalPurchaseOrder> ListEPO, string user)
        {
            int Updated = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var Ids      = ListEPO.Select(d => d.Id).ToList();
                    var listData = this.dbSet
                                   .Where(m => Ids.Contains(m.Id) && !m.IsDeleted)
                                   .Include(d => d.Items)
                                   .ToList();
                    listData.ForEach(m =>
                    {
                        EntityExtension.FlagForUpdate(m, user, "Facade");
                        m.IsApproved = true;

                        foreach (var item in m.Items)
                        {
                            EntityExtension.FlagForUpdate(item, user, "Facade");
                        }
                    });

                    Updated = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Updated);
        }
コード例 #24
0
        public int EPOClose(int id, string user)
        {
            int Updated = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var m = this.dbSet
                            .Include(d => d.Items)
                            .SingleOrDefault(epo => epo.Id == id && !epo.IsDeleted);

                    EntityExtension.FlagForUpdate(m, user, "Facade");
                    m.IsClosed = true;

                    foreach (var item in m.Items)
                    {
                        GarmentInternalPurchaseOrder IPO = this.dbContext.GarmentInternalPurchaseOrders.FirstOrDefault(a => a.Id.Equals(item.POId));

                        IPO.IsClosed = true;

                        EntityExtension.FlagForUpdate(item, user, "Facade");
                    }

                    Updated = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Updated);
        }
コード例 #25
0
        public async Task Should_Success_IsPosted_Transaction_SameYear()
        {
            var dbContext = _dbContext(GetCurrentMethod());
            var service   = new DailyBankTransactionService(GetServiceProvider().Object, dbContext);
            var model     = _dataUtil(service).GetNewData();

            var monthlyBalance = new List <BankTransactionMonthlyBalanceModel>()
            {
                new BankTransactionMonthlyBalanceModel()
                {
                    Month         = 10,
                    Year          = 2019,
                    AccountBankId = model.AccountBankId
                },
                new BankTransactionMonthlyBalanceModel()
                {
                    Month         = 8,
                    Year          = 2020,
                    AccountBankId = model.AccountBankId
                },
                new BankTransactionMonthlyBalanceModel()
                {
                    Month         = 12,
                    Year          = 2020,
                    AccountBankId = model.AccountBankId
                }
            };

            foreach (var datum in monthlyBalance)
            {
                EntityExtension.FlagForCreate(datum, "Test", "Test");
            }

            dbContext.BankTransactionMonthlyBalances.AddRange(monthlyBalance);
            dbContext.SaveChanges();
        }
        private void SetNewActualBalanceByMonth(int month, int year, DailyBankTransactionModel model, decimal nominal)
        {
            var PreviousMonthBalance = GetPreviousMonthBalance(month, year);
            var NextMonthBalance     = GetNextMonthBalance(month, year);
            var NewMonthBalance      = new BankTransactionMonthlyBalanceModel
            {
                Month            = month,
                Year             = year,
                InitialBalance   = PreviousMonthBalance != null ? PreviousMonthBalance.RemainingBalance : 0,
                RemainingBalance = PreviousMonthBalance != null ? PreviousMonthBalance.RemainingBalance + (double)nominal : (double)nominal,
                AccountBankId    = model.AccountBankId
            };

            EntityExtension.FlagForCreate(NewMonthBalance, _IdentityService.Username, _UserAgent);
            _DbMonthlyBalanceSet.Add(NewMonthBalance);

            if (NextMonthBalance != null)
            {
                NextMonthBalance.InitialBalance    = NewMonthBalance.RemainingBalance;
                NextMonthBalance.RemainingBalance += (double)nominal;
                EntityExtension.FlagForUpdate(NextMonthBalance, _IdentityService.Username, _UserAgent);
                _DbMonthlyBalanceSet.Update(NextMonthBalance);
            }
        }
コード例 #27
0
    public HeroData(int entityId, int typeId, CampType camp) : base(entityId, typeId, camp)
    {
        IDataTable <DRHero> dtHero = GameEntry.DataTable.GetDataTable <DRHero> ();
        DRHero drHero = dtHero.GetDataRow(typeId);

        if (drHero == null)
        {
            return;
        }

        Name                  = drHero.Name;
        HP                    = drHero.HP;
        MaxMP                 = drHero.MP;
        MaxHP                 = HP;
        MP                    = 0;
        MoveSpeed             = drHero.MoveSpeed;
        RotateSpeed           = drHero.RotateSpeed;
        Atk                   = drHero.Atk;
        AtkAnimTime           = drHero.AtkAnimTime;
        AtkRange              = drHero.AtkRange;
        Def                   = drHero.Def;
        AtkSpeed              = drHero.AtkSpeed;
        HPAbsorbPercent       = drHero.HPAbsorbPercent;
        DefAbsorbPercent      = drHero.DefAbsorbPercent;
        AtkAbsorbPercent      = drHero.AtkAbsorbPercent;
        AtkSpeedAbsorbPercent = drHero.AtkSpeedAbsorbPercent;
        HPMinAbsorb           = drHero.HPMinAbsorb;
        DefMinAbsorb          = drHero.DefMinAbsorb;
        AtkMinAbsorb          = drHero.AtkMinAbsorb;
        AtkSpeedMinAbsorb     = drHero.AtkSpeedMinAbsorb;

        for (int i = 0; i < drHero.GetWeaponCount(); i++)
        {
            weaponDatas.Add(new WeaponData(EntityExtension.GenerateSerialId(), drHero.GetWeaponID(i), Id, Camp));
        }
    }
        private void SetStatus(ExternalPurchaseOrderDetail externalPurchaseOrderDetail, DeliveryOrderDetail detail, string username)
        {
            if (externalPurchaseOrderDetail.ReceiptQuantity == 0)
            {
                if (dbContext.UnitPaymentOrderDetails.FirstOrDefault(d => d.POItemId == externalPurchaseOrderDetail.POItemId) == null)
                {
                    //PurchaseRequestItem purchaseRequestItem = this.dbContext.PurchaseRequestItems.SingleOrDefault(i => i.Id == detail.PRItemId);
                    InternalPurchaseOrderItem internalPurchaseOrderItem = this.dbContext.InternalPurchaseOrderItems.SingleOrDefault(i => i.Id == detail.POItemId);

                    if (externalPurchaseOrderDetail.DOQuantity == 0)
                    {
                        //purchaseRequestItem.Status = "Sudah diorder ke Supplier";
                        internalPurchaseOrderItem.Status = "Sudah diorder ke Supplier";

                        //EntityExtension.FlagForUpdate(purchaseRequestItem, username, USER_AGENT);
                        EntityExtension.FlagForUpdate(internalPurchaseOrderItem, username, USER_AGENT);
                    }
                    else if (externalPurchaseOrderDetail.DOQuantity > 0 && externalPurchaseOrderDetail.DOQuantity < externalPurchaseOrderDetail.DealQuantity)
                    {
                        //purchaseRequestItem.Status = "Barang sudah datang parsial";
                        internalPurchaseOrderItem.Status = "Barang sudah datang parsial";

                        //EntityExtension.FlagForUpdate(purchaseRequestItem, username, USER_AGENT);
                        EntityExtension.FlagForUpdate(internalPurchaseOrderItem, username, USER_AGENT);
                    }
                    else if (externalPurchaseOrderDetail.DOQuantity > 0 && externalPurchaseOrderDetail.DOQuantity >= externalPurchaseOrderDetail.DealQuantity)
                    {
                        //purchaseRequestItem.Status = "Barang sudah datang semua";
                        internalPurchaseOrderItem.Status = "Barang sudah datang semua";

                        //EntityExtension.FlagForUpdate(purchaseRequestItem, username, USER_AGENT);
                        EntityExtension.FlagForUpdate(internalPurchaseOrderItem, username, USER_AGENT);
                    }
                }
            }
        }
コード例 #29
0
        public async Task <int> Create(GarmentPurchaseRequest m, string user, int clientTimeZoneOffset = 7)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(m, user, USER_AGENT);

                    m.PRNo     = $"PR{m.RONo}";
                    m.IsPosted = true;
                    m.IsUsed   = false;

                    foreach (var item in m.Items)
                    {
                        EntityExtension.FlagForCreate(item, user, USER_AGENT);

                        item.Status = "Belum diterima Pembelian";
                    }

                    this.dbSet.Add(m);

                    Created = await dbContext.SaveChangesAsync();

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

            return(Created);
        }
        private void SetPaid(UnitPaymentOrderItem item, bool isPaid, string username)
        {
            UnitReceiptNote unitReceiptNote = dbContext.UnitReceiptNotes.Include(a => a.Items).Single(m => m.Id == item.URNId);

            foreach (var itemURN in unitReceiptNote.Items)
            {
                var detail = item.Details.FirstOrDefault(a => a.URNItemId == itemURN.Id);
                if (detail != null)
                {
                    itemURN.IsPaid = isPaid;
                }
            }
            bool flagIsPaid = true;

            foreach (var itemURNPaid in unitReceiptNote.Items)
            {
                if (itemURNPaid.IsPaid == false)
                {
                    flagIsPaid = false;
                }
            }
            unitReceiptNote.IsPaid = flagIsPaid;
            EntityExtension.FlagForUpdate(unitReceiptNote, username, USER_AGENT);
        }