public void CreateModel(GarmentInvoicePurchasingDispositionModel model) { EntityExtension.FlagForCreate(model, IdentityService.Username, UserAgent); //get last Paid var dispositionIds = model.Items.Select(s => s.DispositionId).ToList(); //var getLastDiposition = DbContext.GarmentInvoicePurchasingDispositions.Where(s => dispositionIds.Contains(s.DispositionNoteId)); foreach (var item in model.Items) { GarmentDispositionExpeditionModel expedition = DbContext.GarmentDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId)); //var getLastDipositionPaidAmount = getLastDiposition.Where(s=> s.DispositionNoteId == expedition.DispositionNoteId) EntityExtension.FlagForCreate(item, IdentityService.Username, UserAgent); if (item.TotalPaidBefore + item.TotalPaid >= item.TotalAmount) { expedition.IsPaid = true; } else { expedition.IsPaid = false; } expedition.BankExpenditureNoteNo = model.InvoiceNo; expedition.BankExpenditureNoteDate = model.InvoiceDate; } DbSet.Add(model); }
public IndexDto(GarmentDispositionExpeditionModel entity) { Id = entity.Id; DispositionNoteNo = entity.DispositionNoteNo; DispositionNoteDate = entity.DispositionNoteDate; DispositionNoteDueDate = entity.DispositionNoteDueDate; DispositionNoteId = entity.DispositionNoteId; SupplierName = entity.SupplierName; TotalPaid = entity.TotalPaid; CurrencyCode = entity.CurrencyCode; VerificationAcceptedDate = entity.VerificationAcceptedDate; SendToPurchasingRemark = entity.SendToPurchasingRemark; Remark = entity.Remark; DPPAmount = entity.DPPAmount; VATAmount = entity.VATAmount; IncomeTaxAmount = entity.IncomeTaxAmount; Status = entity.Position.ToDescriptionString(); Date = entity.Position == GarmentPurchasingExpeditionPosition.SendToAccounting ? entity.SendToAccountingDate : entity.Position == GarmentPurchasingExpeditionPosition.SendToCashier ? entity.SendToCashierDate : entity.Position == GarmentPurchasingExpeditionPosition.SendToPurchasing ? entity.SendToPurchasingDate : entity.VerificationAcceptedDate; VerifiedBy = entity.Position == GarmentPurchasingExpeditionPosition.SendToAccounting ? entity.SendToAccountingBy : entity.Position == GarmentPurchasingExpeditionPosition.SendToCashier ? entity.SendToCashierBy : entity.Position == GarmentPurchasingExpeditionPosition.SendToPurchasing ? entity.SendToPurchasingBy : entity.VerificationAcceptedBy; SentDate = entity.Position == GarmentPurchasingExpeditionPosition.SendToAccounting || entity.Position == GarmentPurchasingExpeditionPosition.AccountingAccepted ? entity.SendToAccountingDate : entity.Position == GarmentPurchasingExpeditionPosition.SendToCashier || entity.Position == GarmentPurchasingExpeditionPosition.CashierAccepted ? entity.SendToCashierDate : entity.Position == GarmentPurchasingExpeditionPosition.SendToPurchasing ? entity.SendToPurchasingDate : entity.SendToVerificationDate; AcceptedDate = entity.Position == GarmentPurchasingExpeditionPosition.AccountingAccepted ? entity.AccountingAcceptedDate : entity.Position == GarmentPurchasingExpeditionPosition.CashierAccepted ? entity.CashierAcceptedDate : entity.Position == GarmentPurchasingExpeditionPosition.VerificationAccepted ? entity.VerificationAcceptedDate : null; CreatedDate = entity.CreatedUtc; ProformaNo = entity.ProformaNo; Amount = entity.DPPAmount + VATAmount - IncomeTaxAmount; Category = entity.Category; VerifiedDate = entity.VerifiedDate; }
public async Task <int> SendToAccounting(SendToVerificationAccountingFormDto form) { var models = new List <GarmentDispositionExpeditionModel>(); foreach (var item in form.Items) { var model = new GarmentDispositionExpeditionModel(item.DispositionNote.Id, item.DispositionNote.DocumentNo, item.DispositionNote.Date, item.DispositionNote.DueDate, item.DispositionNote.SupplierId, item.DispositionNote.SupplierName, item.DispositionNote.VATAmount, item.DispositionNote.CurrencyVATAmount, item.DispositionNote.IncomeTaxAmount, item.DispositionNote.CurrencyIncomeTaxAmount, item.DispositionNote.TotalPaid, item.DispositionNote.CurrencyTotalPaid, item.DispositionNote.CurrencyId, item.DispositionNote.CurrencyCode, item.Remark, item.DispositionNote.DPPAmount, item.DispositionNote.CurrencyDPPAmount, item.DispositionNote.SupplierCode, item.DispositionNote.CurrencyRate, item.DispositionNote.ProformaNo, item.DispositionNote.Category); model.SendToAccounting(_identityService.Username); EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent); models.Add(model); } _dbContext.GarmentDispositionExpeditions.UpdateRange(models); var httpClient = _serviceProvider.GetService <IHttpClientService>(); var updateDispositionNotePositionData = new { Ids = models.Select(element => element.DispositionNoteId).ToList(), Position = GarmentPurchasingExpeditionPosition.SendToAccounting }; await httpClient.PutAsync($"{APIEndpoint.Purchasing}garment-purchasing-expeditions/disposition-notes/position", new StringContent(JsonConvert.SerializeObject(updateDispositionNotePositionData), Encoding.UTF8, General.JsonMediaType)); return(_dbContext.SaveChanges()); }
public async Task Should_Success_Post_Data() { 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 model = new GarmentInvoicePurchasingDispositionPostingViewModel() { ListIds = new List <GarmentInvoicePurchasingDispositionPostingIdViewModel>() { new GarmentInvoicePurchasingDispositionPostingIdViewModel() { Id = 1 } } }; var result = await service.Post(model); Assert.Equal(0, result); }
public async Task Should_Success_Update_Created_Data() { 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 model = new GarmentInvoicePurchasingDispositionModel() { InvoiceNo = "Test", SupplierName = "Test", CurrencyCode = "Code", BankName = "BankName", Items = new List <GarmentInvoicePurchasingDispositionItemModel>() { new GarmentInvoicePurchasingDispositionItemModel(0, expedition.Id, "Test") } }; await service.CreateAsync(model); var result = await service.UpdateAsync(model.Id, model); Assert.NotEqual(0, result); }
public async Task Should_Not_Empty_Read_Created_Data() { 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(); await service.CreateAsync(new GarmentInvoicePurchasingDispositionModel() { InvoiceNo = "Test", SupplierName = "Test", CurrencyCode = "Code", BankName = "BankName", Items = new List <GarmentInvoicePurchasingDispositionItemModel>() { new GarmentInvoicePurchasingDispositionItemModel(0, expedition.Id, "Test") } }); var result = service.Read(1, 10, "{}", new List <string>(), null, "{}"); Assert.NotEmpty(result.Data); }
public void should_success_instantiate() { int id = 1; string dispositionNoteNo = "Test"; int dispositionNoteId = 1; double currencyTotalPaid = 1; double totalPaid = 1; int currencyId = 1; string currencyCode = "Test"; string suppliername = "Test"; string remark = "Test"; string proformaNo = "Test"; string createdBy = "Test"; double currencyRate = 1; int supplierId = 1; string supplierCode = "Test"; double vatAmount = 1; double currencyVatAmount = 1; double incomeTaxAmount = 1; double currencyIncomeTaxAmount = 1; double dppAmount = 1; double currencyDppAmount = 1; string sendToPurchasingRemark = "Test"; GarmentDispositionExpeditionModel model = new GarmentDispositionExpeditionModel( id, dispositionNoteNo, DateTimeOffset.Now, DateTimeOffset.Now, dispositionNoteId, currencyTotalPaid, totalPaid, currencyId, currencyCode, suppliername, remark, proformaNo, createdBy, currencyRate, supplierId, supplierCode, vatAmount, currencyVatAmount, incomeTaxAmount, currencyIncomeTaxAmount, dppAmount, currencyDppAmount, DateTimeOffset.Now, DateTimeOffset.Now, sendToPurchasingRemark, DateTime.Now); Assert.NotNull(model); }
//private async Task<GarmentCurrency> GetGarmentCurrency(string codeCurrency) //{ // var date = DateTimeOffset.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"); // var queryString = $"code={codeCurrency}&stringDate={date}"; // var http = ServiceProvider.GetService<IHttpClientService>(); // var response = await http.GetAsync(APIEndpoint.Core + $"master/garment-currencies/single-by-code-date?{queryString}"); // var responseString = await response.Content.ReadAsStringAsync(); // var jsonSerializationSetting = new JsonSerializerSettings() { MissingMemberHandling = MissingMemberHandling.Ignore }; // var result = JsonConvert.DeserializeObject<APIDefaultResponse<GarmentCurrency>>(responseString, jsonSerializationSetting); // return result.data; //} public async Task DeleteModel(int id) { GarmentInvoicePurchasingDispositionModel model = await ReadByIdAsync(id); foreach (var item in model.Items) { GarmentDispositionExpeditionModel expedition = DbContext.GarmentDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId)); EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true); expedition.IsPaid = false; expedition.BankExpenditureNoteNo = null; expedition.BankExpenditureNoteDate = DateTimeOffset.MinValue; } EntityExtension.FlagForDelete(model, IdentityService.Username, UserAgent, true); DbSet.Update(model); }
public void UpdateModel(int id, GarmentInvoicePurchasingDispositionModel model) { GarmentInvoicePurchasingDispositionModel exist = DbSet .Include(d => d.Items) .Single(dispo => dispo.Id == id && !dispo.IsDeleted); exist.ChequeNo = model.ChequeNo; exist.InvoiceDate = model.InvoiceDate; foreach (var item in exist.Items) { GarmentInvoicePurchasingDispositionItemModel itemModel = model.Items.FirstOrDefault(prop => prop.Id.Equals(item.Id)); if (itemModel == null) { GarmentDispositionExpeditionModel expedition = DbContext.GarmentDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId)); expedition.IsPaid = false; expedition.BankExpenditureNoteNo = null; expedition.BankExpenditureNoteDate = DateTimeOffset.MinValue; EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true); } else { item.SetTotalPaid(itemModel.TotalPaid); GarmentDispositionExpeditionModel expedition = DbContext.GarmentDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId)); if (itemModel.TotalPaidBefore + itemModel.TotalPaid >= itemModel.TotalAmount) { expedition.IsPaid = true; } else { expedition.IsPaid = false; } EntityExtension.FlagForUpdate(item, IdentityService.Username, UserAgent); } } EntityExtension.FlagForUpdate(exist, IdentityService.Username, UserAgent); //DbSet.Update(exist); }