public async Task <IActionResult> GetDownPaymentPDF([FromRoute] int Id)
        {
            try
            {
                var            indexAcceptPdf = Request.Headers["Accept"].ToList().IndexOf("application/pdf");
                int            timeoffsset    = Convert.ToInt32(Request.Headers["x-timezone-offset"]);
                VbRequestModel 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
                {
                    VbNonPORequestViewModel viewModel = _mapper.Map <VbNonPORequestViewModel>(model);

                    VbNonPORequestPDFTemplate PdfTemplate = new VbNonPORequestPDFTemplate();
                    MemoryStream stream = PdfTemplate.GeneratePdfTemplate(viewModel, timeoffsset);
                    return(new FileStreamResult(stream, "application/pdf")
                    {
                        FileDownloadName = "Permohonan VB Tanpa PO - " + viewModel.VBNo + ".pdf"
                    });
                }
            }
            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 <ActionResult> Post([FromBody] VbNonPORequestViewModel viewModel)
        {
            try
            {
                VerifyUser();
                _validateService.Validate(viewModel);

                var model = _mapper.Map <VbRequestModel>(viewModel);

                await _service.CreateAsync(model, viewModel);

                await _service.MappingData(viewModel);

                var result = new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE).Ok();

                return(Created(String.Concat(Request.Path, "/", 0), result));
            }
            catch (ServiceValidationException e)
            {
                var result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE).Fail(e);
                return(BadRequest(result));
            }
            catch (Exception e)
            {
                var result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, result));
            }
        }
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] VbNonPORequestViewModel viewModel)
        {
            try
            {
                VerifyUser();
                _validateService.Validate(viewModel);

                if (id != viewModel.Id)
                {
                    var result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE).Fail();
                    return(BadRequest(result));
                }

                var model = _mapper.Map <VbRequestModel>(viewModel);

                await _service.UpdateAsync(id, viewModel);

                return(NoContent());
            }
            catch (ServiceValidationException e)
            {
                var result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE).Fail(e);
                return(BadRequest(result));
            }
            catch (Exception e)
            {
                var result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message).Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, result));
            }
        }
        public Task <int> MappingData(VbNonPORequestViewModel viewModel)
        {
            var result     = new List <VbRequestDetailModel>();
            var myProperty = viewModel.GetType().GetProperties();

            int value = int.Parse(dbSet.OrderByDescending(p => p.Id)
                                  .Select(r => r.Id)
                                  .First().ToString());

            foreach (var prop in myProperty.Where(x => x.PropertyType == typeof(bool)))
            {
                if ((bool)prop.GetValue(viewModel))
                {
                    var item = new VbRequestDetailModel()
                    {
                        VBId = value, UnitName = prop.Name
                    };
                    if (prop.Name.ToUpper() == "OTHERS")
                    {
                        item.DetailOthers = viewModel.DetailOthers;
                    }

                    EntityExtension.FlagForCreate(item, _identityService.Username, UserAgent);
                    _dbContext.VbRequestsDetails.Add(item);
                    //_dbContext.SaveChangesAsync();
                }
            }

            return(_dbContext.SaveChangesAsync());
        }
        public Task <int> CreateAsync(VbRequestModel model, VbNonPORequestViewModel viewmodel)
        {
            model.VBNo = GetVbNonPoNo(model);

            model.VBRequestCategory = "NONPO";

            model.Apporve_Status  = false;
            model.Complete_Status = false;

            model.UnitLoad = GetUnitLoad(viewmodel);

            EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent);

            _dbContext.VbRequests.Add(model);

            return(_dbContext.SaveChangesAsync());
        }
        public Task <int> UpdateAsync(int id, VbNonPORequestViewModel viewModel)
        {
            var model = MappingData2(viewModel);

            model.VBRequestCategory = "NONPO";
            model.UnitLoad          = GetUnitLoad(viewModel);

            model.Apporve_Status  = false;
            model.Complete_Status = false;

            EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent);

            var itemIds = _dbContext.VbRequestsDetails.Where(entity => entity.VBId == id).Select(entity => entity.Id).ToList();

            foreach (var itemId in itemIds)
            {
                var item = model.VbRequestDetail.FirstOrDefault(element => element.Id == itemId);
                if (item == null)
                {
                    var itemToDelete = _dbContext.VbRequestsDetails.FirstOrDefault(entity => entity.Id == itemId);
                    EntityExtension.FlagForDelete(itemToDelete, _identityService.Username, UserAgent);
                    _dbContext.VbRequestsDetails.Update(itemToDelete);
                }
                //else
                //{
                //    EntityExtension.FlagForUpdate(item, _identityService.Username, UserAgent);
                //    _dbContext.VbRequestsDetails.Update(item);
                //}//
            }

            foreach (var item in model.VbRequestDetail)
            {
                if (item.Id <= 0)
                {
                    EntityExtension.FlagForCreate(item, _identityService.Username, UserAgent);
                    _dbContext.VbRequestsDetails.Add(item);
                }
            }

            _dbContext.VbRequests.Update(model);

            return(_dbContext.SaveChangesAsync());
        }
        private string GetUnitLoad(VbNonPORequestViewModel viewmodel)
        {
            var UnitLoad = "";

            if (viewmodel.Spinning1 == true)
            {
                UnitLoad += "Spinning 1, ";
            }

            if (viewmodel.Spinning2 == true)
            {
                UnitLoad += "Spinning 2, ";
            }

            if (viewmodel.Spinning3 == true)
            {
                UnitLoad += "Spinning 3, ";
            }

            if (viewmodel.Weaving1 == true)
            {
                UnitLoad += "Weaving 1, ";
            }

            if (viewmodel.Weaving2 == true)
            {
                UnitLoad += "Weaving 2, ";
            }

            if (viewmodel.Finishing == true)
            {
                UnitLoad += "Finishing, ";
            }

            if (viewmodel.Printing == true)
            {
                UnitLoad += "Printing, ";
            }

            if (viewmodel.Konfeksi1A == true)
            {
                UnitLoad += "Konfeksi 1A, ";
            }

            if (viewmodel.Konfeksi1B == true)
            {
                UnitLoad += "Konfeksi 1B, ";
            }

            if (viewmodel.Konfeksi2A == true)
            {
                UnitLoad += "Konfeksi 2A, ";
            }

            if (viewmodel.Konfeksi2B == true)
            {
                UnitLoad += "Konfeksi 2B, ";
            }

            if (viewmodel.Konfeksi2C == true)
            {
                UnitLoad += "Konfeksi 2C, ";
            }

            if (viewmodel.Umum == true)
            {
                UnitLoad += "Umum, ";
            }

            if (viewmodel.Others == true)
            {
                UnitLoad += $"{viewmodel.DetailOthers}, ";
            }

            UnitLoad = UnitLoad.Remove(UnitLoad.Length - 2);

            return(UnitLoad);
        }
        public VbRequestModel MappingData2(VbNonPORequestViewModel viewModel)
        {
            var listDetail = new List <VbRequestDetailModel>();

            var myProperty = viewModel.GetType().GetProperties();

            int value = int.Parse(dbSet.OrderByDescending(p => p.Id)
                                  .Select(r => r.Id)
                                  .First().ToString());

            foreach (var prop in myProperty.Where(x => x.PropertyType == typeof(bool)))
            {
                if ((bool)prop.GetValue(viewModel))
                {
                    var item = new VbRequestDetailModel()
                    {
                        VBId              = value,
                        UnitName          = prop.Name,
                        LastModifiedBy    = viewModel.LastModifiedBy,
                        LastModifiedAgent = viewModel.LastModifiedAgent,
                        DeletedBy         = "",
                        DeletedAgent      = "",
                        CreatedBy         = viewModel.CreatedBy,
                        CreatedAgent      = viewModel.CreatedAgent,
                    };
                    if (prop.Name.ToUpper() == "OTHERS")
                    {
                        item.DetailOthers = viewModel.DetailOthers;
                    }
                    listDetail.Add(item);
                    //EntityExtension.FlagForCreate(item, _identityService.Username, UserAgent);
                    //_dbContext.VbRequestsDetails.Add(item);
                    //_dbContext.SaveChangesAsync();
                }
            }
            var result = new VbRequestModel()
            {
                VbRequestDetail = listDetail,
                Active          = viewModel.Active,
                Id                  = viewModel.Id,
                Date                = (DateTimeOffset)viewModel.Date,
                DateEstimate        = (DateTimeOffset)viewModel.DateEstimate,
                UnitId              = viewModel.Unit.Id,
                UnitCode            = viewModel.Unit.Code,
                UnitName            = viewModel.Unit.Name,
                UnitDivisionId      = viewModel.Division.Id,
                UnitDivisionName    = viewModel.Division.Name,
                VBNo                = viewModel.VBNo,
                CurrencyId          = viewModel.Currency.Id,
                CurrencyCode        = viewModel.Currency.Code,
                CurrencyRate        = viewModel.Currency.Rate,
                CurrencySymbol      = viewModel.Currency.Symbol,
                CurrencyDescription = viewModel.Currency.Description,
                Amount              = viewModel.Amount,
                Usage               = viewModel.Usage,
                UnitLoad            = viewModel.UnitLoad,
                CreatedBy           = viewModel.CreatedBy,
                CreatedAgent        = viewModel.CreatedAgent,
                LastModifiedAgent   = viewModel.LastModifiedAgent,
                LastModifiedBy      = viewModel.LastModifiedBy,
                LastModifiedUtc     = DateTime.Now,
                CreatedUtc          = viewModel.CreatedUtc
            };

            return(result);
        }
        public void Should_Success_Validate_All_Null_Data()
        {
            var viewModel = new VbNonPORequestViewModel();

            Assert.True(viewModel.Validate(null).Count() > 0);
        }
Exemple #10
0
        public async Task Get_Sales_Receipt_PDF_Success_Currency_Not_IDR_CheckBox_Others_False()
        {
            var vm = new VbNonPORequestViewModel()
            {
                VBNo = "VBNo",
                Date = DateTimeOffset.Now,
                Unit = new Unit()
                {
                    Id   = 1,
                    Code = "Code",
                    Name = "Name",
                },
                Currency = new CurrencyVBRequest()
                {
                    Id          = 1,
                    Code        = "IDR",
                    Rate        = 1,
                    Symbol      = "$",
                    Description = "DOLLAR"
                },
                Amount       = 123,
                Usage        = "Usage",
                Spinning1    = true,
                Spinning2    = true,
                Spinning3    = true,
                Weaving1     = true,
                Weaving2     = true,
                Finishing    = true,
                Printing     = true,
                Konfeksi1A   = true,
                Konfeksi1B   = true,
                Konfeksi2A   = true,
                Konfeksi2B   = true,
                Konfeksi2C   = true,
                Umum         = true,
                Others       = false,
                DetailOthers = "",
                UnitLoad     = "Spinning 1"
            };

            var serviceProviderMock = new Mock <IServiceProvider>();

            var serviceMock = new Mock <IVbNonPORequestService>();

            serviceMock
            .Setup(service => service.ReadByIdAsync(It.IsAny <int>()))
            .ReturnsAsync(new VbRequestModel());
            serviceProviderMock
            .Setup(serviceProvider => serviceProvider.GetService(typeof(IVbNonPORequestService))).Returns(serviceMock.Object);

            var validateServiceMock = new Mock <IValidateService>();

            serviceProviderMock
            .Setup(serviceProvider => serviceProvider.GetService(typeof(IValidateService))).Returns(validateServiceMock.Object);
            var identityServiceMock = new Mock <IIdentityService>();

            serviceProviderMock
            .Setup(serviceProvider => serviceProvider.GetService(typeof(IIdentityService))).Returns(identityServiceMock.Object);
            var mapperMock = new Mock <IMapper>();

            mapperMock
            .Setup(mapper => mapper.Map <VbNonPORequestViewModel>(It.IsAny <VbRequestModel>()))
            .Returns(vm);
            serviceProviderMock
            .Setup(serviceProvider => serviceProvider.GetService(typeof(IMapper))).Returns(mapperMock.Object);

            var controller = GetController(serviceProviderMock.Object);

            var response = await controller.GetDownPaymentPDF(It.IsAny <int>());

            //var statusCode = GetStatusCode(response);

            Assert.NotNull(response);
        }