public async Task <ActionResult> Post([FromBody] List <PurchasingDispositionExpeditionViewModel> viewModel)
        {
            try
            {
                VerifyUser();
                ValidateService.Validate(viewModel);
                foreach (var vm in viewModel)
                {
                    ValidateService.Validate(viewModel);
                    PurchasingDispositionExpeditionModel model = Mapper.Map <PurchasingDispositionExpeditionModel>(vm);
                    await Service.CreateAsync(model);
                }

                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE)
                    .Ok();
                return(Created(String.Concat(Request.Path, "/", 0), Result));
            }
            catch (ServiceValidationException e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE)
                    .Fail(e);
                return(BadRequest(Result));
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
        public async Task <IActionResult> GetById([FromRoute] int id)
        {
            try
            {
                PurchasingDispositionExpeditionModel model = await Service.ReadByIdAsync(id);

                if (model == null)
                {
                    Dictionary <string, object> Result =
                        new ResultFormatter(ApiVersion, General.NOT_FOUND_STATUS_CODE, General.NOT_FOUND_MESSAGE)
                        .Fail();
                    return(NotFound(Result));
                }
                else
                {
                    PurchasingDispositionExpeditionViewModel viewModel = Mapper.Map <PurchasingDispositionExpeditionViewModel>(model);
                    Dictionary <string, object> Result =
                        new ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE)
                        .Ok <PurchasingDispositionExpeditionViewModel>(Mapper, viewModel);
                    return(Ok(Result));
                }
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
        public async Task DeleteModel(int id)
        {
            PurchasingDispositionExpeditionModel model = await ReadByIdAsync(id);

            foreach (var item in model.Items)
            {
                EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);
            }

            List <string> dispoNo = new List <string>();

            dispoNo.Add(model.DispositionNo);

            var dispoCount = this.DbSet.Count(x => x.DispositionNo == model.DispositionNo && x.IsDeleted == false && x.Id != model.Id);

            if (dispoCount > 0)
            {
                UpdateDispositionPosition(dispoNo, ExpeditionPosition.SEND_TO_PURCHASING_DIVISION);
            }
            else
            {
                UpdateDispositionPosition(dispoNo, ExpeditionPosition.PURCHASING_DIVISION);
            }

            EntityExtension.FlagForDelete(model, IdentityService.Username, UserAgent, true);
            DbSet.Update(model);
        }
        public async Task <PurchasingDispositionExpeditionModel> GetTestData()
        {
            PurchasingDispositionExpeditionModel model = GetNewData();
            await Service.CreateAsync(model);

            return(await Service.ReadByIdAsync(model.Id));
        }
        public void Should_Success_Map_Purchasing_Disposition()
        {
            var mapper = new MapperConfiguration(configuration => configuration.AddProfile <PurchasingDispositionExpeditionProfile>()).CreateMapper();
            var model  = new PurchasingDispositionExpeditionModel();
            var vm     = mapper.Map <PurchasingDispositionExpeditionViewModel>(model);

            Assert.True(true);
        }
        public async Task Should_Success_Create_Data()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = _dataUtil(service).GetNewData();
            var Response = await service.CreateAsync(model);

            Assert.NotEqual(0, Response);
        }
        public async Task <int> DeletePurchasingDispositionAcceptance(int id)
        {
            int count = 0;

            if (DbContext.PurchasingDispositionExpeditions.Count(x => x.Id == id && !x.IsDeleted).Equals(0))
            {
                return(0);
            }

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    PurchasingDispositionExpeditionModel purchasingDispositionExpedition = DbContext.PurchasingDispositionExpeditions.Single(x => x.Id == id);

                    if (purchasingDispositionExpedition.Position == ExpeditionPosition.VERIFICATION_DIVISION)
                    {
                        purchasingDispositionExpedition.VerificationDivisionBy   = null;
                        purchasingDispositionExpedition.VerificationDivisionDate = null;
                        purchasingDispositionExpedition.Position = ExpeditionPosition.SEND_TO_VERIFICATION_DIVISION;

                        EntityExtension.FlagForUpdate(purchasingDispositionExpedition, IdentityService.Username, UserAgent);

                        count = await DbContext.SaveChangesAsync();

                        UpdateDispositionPosition(new List <string>()
                        {
                            purchasingDispositionExpedition.DispositionNo
                        }, ExpeditionPosition.SEND_TO_VERIFICATION_DIVISION);
                    }
                    else if (purchasingDispositionExpedition.Position == ExpeditionPosition.CASHIER_DIVISION)
                    {
                        purchasingDispositionExpedition.CashierDivisionBy   = null;
                        purchasingDispositionExpedition.CashierDivisionDate = null;
                        purchasingDispositionExpedition.Position            = ExpeditionPosition.SEND_TO_CASHIER_DIVISION;

                        EntityExtension.FlagForUpdate(purchasingDispositionExpedition, IdentityService.Username, UserAgent);

                        count = await DbContext.SaveChangesAsync();

                        UpdateDispositionPosition(new List <string>()
                        {
                            purchasingDispositionExpedition.DispositionNo
                        }, ExpeditionPosition.SEND_TO_CASHIER_DIVISION);
                    }

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

            return(count);
        }
        public async Task Update_Throws_NotImplementedException()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData2();

            var newModel = await service.ReadByIdAsync(model.Id);

            await Assert.ThrowsAsync <NotImplementedException>(() => service.Update(newModel.Id, newModel, "", 7));
        }
        public async Task Should_Success_Get_Data_By_Id()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            var Response = await service.ReadByIdAsync(model.Id);

            Assert.NotNull(Response);
        }
        public async Task <int> PurchasingDispositionAcceptance(PurchasingDispositionAcceptanceViewModel data)
        {
            int updated = 0;

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    List <string> dispositions = new List <string>();

                    if (data.Role.Equals("VERIFICATION"))
                    {
                        foreach (var item in data.PurchasingDispositionExpedition)
                        {
                            dispositions.Add(item.DispositionNo);
                            PurchasingDispositionExpeditionModel model = DbContext.PurchasingDispositionExpeditions.Single(x => x.Id == item.Id);
                            model.VerificationDivisionBy   = IdentityService.Username;
                            model.VerificationDivisionDate = DateTimeOffset.UtcNow;
                            model.Position = ExpeditionPosition.VERIFICATION_DIVISION;

                            EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent);
                        }

                        updated = await DbContext.SaveChangesAsync();

                        UpdateDispositionPosition(dispositions, ExpeditionPosition.VERIFICATION_DIVISION);
                    }
                    else if (data.Role.Equals("CASHIER"))
                    {
                        foreach (var item in data.PurchasingDispositionExpedition)
                        {
                            dispositions.Add(item.DispositionNo);
                            PurchasingDispositionExpeditionModel model = DbContext.PurchasingDispositionExpeditions.Single(x => x.Id == item.Id);
                            model.CashierDivisionBy   = IdentityService.Username;
                            model.CashierDivisionDate = DateTimeOffset.UtcNow;
                            model.Position            = ExpeditionPosition.CASHIER_DIVISION;

                            EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent);
                        }

                        updated = await DbContext.SaveChangesAsync();

                        UpdateDispositionPosition(dispositions, ExpeditionPosition.CASHIER_DIVISION);
                    }
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return(updated);
        }
        public async Task Should_Success_Delete_With_two_Datas()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData2();

            var newModel = await service.ReadByIdAsync(model.Id);

            var Response = await service.DeleteAsync(newModel.Id);

            Assert.NotEqual(0, Response);
        }
        public async Task Should_Fail_Post_Disposition_Verification()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            await Assert.ThrowsAnyAsync <Exception>(() => service.PurchasingDispositionVerification(null));
        }
        public void CreateModel(PurchasingDispositionExpeditionModel m)
        {
            EntityExtension.FlagForCreate(m, IdentityService.Username, UserAgent);
            m.Position = ExpeditionPosition.SEND_TO_VERIFICATION_DIVISION;
            foreach (var item in m.Items)
            {
                EntityExtension.FlagForCreate(item, IdentityService.Username, UserAgent);
            }
            List <string> dispoNo = new List <string>();

            dispoNo.Add(m.DispositionNo);
            UpdateDispositionPosition(dispoNo, ExpeditionPosition.SEND_TO_VERIFICATION_DIVISION);

            DbSet.Add(m);
        }
Exemple #14
0
        public void UpdateModel(int id, PaymentDispositionNoteModel model)
        {
            PaymentDispositionNoteModel exist = DbSet
                                                .Include(d => d.Items)
                                                .ThenInclude(d => d.Details)
                                                .Single(dispo => dispo.Id == id && !dispo.IsDeleted);


            exist.BGCheckNumber = model.BGCheckNumber;
            exist.PaymentDate   = model.PaymentDate;

            foreach (var item in exist.Items)
            {
                PaymentDispositionNoteItemModel itemModel = model.Items.FirstOrDefault(prop => prop.Id.Equals(item.Id));

                if (itemModel == null)
                {
                    PurchasingDispositionExpeditionModel expedition = DbContext.PurchasingDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId));
                    expedition.IsPaid = false;
                    expedition.BankExpenditureNoteNo   = null;
                    expedition.BankExpenditureNoteDate = DateTimeOffset.MinValue;

                    EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);

                    foreach (var detail in item.Details)
                    {
                        EntityExtension.FlagForDelete(detail, IdentityService.Username, UserAgent, true);
                        //DbContext.PaymentDispositionNoteDetails.Update(detail);
                    }

                    //DbContext.PaymentDispositionNoteItems.Update(item);
                }
                else
                {
                    EntityExtension.FlagForUpdate(item, IdentityService.Username, UserAgent);

                    foreach (var detail in DbContext.PaymentDispositionNoteDetails.AsNoTracking().Where(p => p.PaymentDispositionNoteItemId == item.Id))
                    {
                        EntityExtension.FlagForUpdate(detail, IdentityService.Username, UserAgent);
                    }
                }
            }

            EntityExtension.FlagForUpdate(exist, IdentityService.Username, UserAgent);
            //DbSet.Update(exist);
        }
Exemple #15
0
 public void CreateModel(PaymentDispositionNoteModel model)
 {
     EntityExtension.FlagForCreate(model, IdentityService.Username, UserAgent);
     foreach (var item in model.Items)
     {
         PurchasingDispositionExpeditionModel expedition = DbContext.PurchasingDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId));
         EntityExtension.FlagForCreate(item, IdentityService.Username, UserAgent);
         expedition.IsPaid = true;
         expedition.BankExpenditureNoteNo   = model.PaymentDispositionNo;
         expedition.BankExpenditureNoteDate = model.PaymentDate;
         foreach (var detail in item.Details)
         {
             EntityExtension.FlagForCreate(detail, IdentityService.Username, UserAgent);
         }
     }
     DbSet.Add(model);
 }
        public async Task Should_Success_Post_Disposition_Verification_Create_Purchasing()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            var response = await service.PurchasingDispositionVerification(data);

            Assert.NotEqual(0, response);
        }
        public async Task Should_Fail_Post_Acceptance_Verification()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionAcceptanceViewModel data = new PurchasingDispositionAcceptanceViewModel()
            {
                Role = "VERIFICATION",
                PurchasingDispositionExpedition = new List <PurchasingDispositionAcceptanceItemViewModel>()
                {
                    new PurchasingDispositionAcceptanceItemViewModel()
                    {
                        DispositionNo = model.DispositionNo,
                        Id            = model.Id
                    }
                }
            };
            await Assert.ThrowsAnyAsync <Exception>(() => service.PurchasingDispositionAcceptance(null));
        }
Exemple #18
0
        public async Task DeleteModel(int id)
        {
            PaymentDispositionNoteModel model = await ReadByIdAsync(id);

            foreach (var item in model.Items)
            {
                PurchasingDispositionExpeditionModel expedition = DbContext.PurchasingDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId));
                EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);
                expedition.IsPaid = false;
                expedition.BankExpenditureNoteNo   = null;
                expedition.BankExpenditureNoteDate = DateTimeOffset.MinValue;
                foreach (var detail in item.Details)
                {
                    EntityExtension.FlagForDelete(detail, IdentityService.Username, UserAgent, true);
                }
            }
            EntityExtension.FlagForDelete(model, IdentityService.Username, UserAgent, true);
            DbSet.Update(model);
        }
Exemple #19
0
        public async Task Should_Success_Get_All_Data()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            await service.PurchasingDispositionVerification(data);

            DateTimeOffset tomorrow = DateTimeOffset.UtcNow.AddDays(1);
            PaymentDispositionNotVerifiedReportService report = new PaymentDispositionNotVerifiedReportService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            var response = report.GetReport("", "", "", model.VerifyDate.GetValueOrDefault().AddDays(-30), tomorrow, 1, 25, "{}", 7, "notHistory");

            Assert.NotNull(response.Item1);
        }
Exemple #20
0
        public async Task Should_Success_GenerateExcel_WithDateIsNull()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            await service.PurchasingDispositionVerification(data);

            PaymentDispositionNotVerifiedReportService report = new PaymentDispositionNotVerifiedReportService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));

            var reportResponse = report.GenerateExcel("", "", "", null, null, 7, "history");

            Assert.NotNull(reportResponse);
        }
        public async Task Should_Success_Post_Acceptance_Cashier()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionAcceptanceViewModel data = new PurchasingDispositionAcceptanceViewModel()
            {
                Role = "CASHIER",
                PurchasingDispositionExpedition = new List <PurchasingDispositionAcceptanceItemViewModel>()
                {
                    new PurchasingDispositionAcceptanceItemViewModel()
                    {
                        DispositionNo = model.DispositionNo,
                        Id            = model.Id
                    }
                }
            };

            var response = await service.PurchasingDispositionAcceptance(data);

            Assert.NotEqual(0, response);
        }
        public async Task <int> CreateAsync(PurchasingDispositionExpeditionModel m)
        {
            CreateModel(m);

            return(await DbContext.SaveChangesAsync());
        }
 public Task <int> Update(int id, PurchasingDispositionExpeditionModel m, string user, int clientTimeZoneOffset = 7)
 {
     throw new NotImplementedException();
 }
 public Task <int> UpdateAsync(int id, PurchasingDispositionExpeditionModel model)
 {
     throw new NotImplementedException();
 }