public async Task <IActionResult> OnGetAsync() { Notification = await NotificationRepository.GetNotificationAsync(NotificationId); await AuthorizeAndSetBannerAsync(); // Check edit permission and redirect if not allowed if (PermissionLevel != PermissionLevel.Edit) { return(RedirectToPage("/Notifications/Overview", new { NotificationId })); } var pendingTransferAlert = await _alertRepository.GetOpenTransferAlertByNotificationId(NotificationId); if (pendingTransferAlert != null) { TransferAlert = pendingTransferAlert; return(Partial("_TransferPendingPartial", this)); } TransferRequest = new TransferRequestViewModel { TransferDate = DateTime.Now.Date }; SetDatesOnRequestForValidation(TransferRequest); FormattedTransferDate = TransferRequest.TransferDate.ConvertToFormattedDate(); await SetDropdownsAsync(); return(Page()); }
public async Task <IActionResult> OnGetAsync() { Notification = await NotificationRepository.GetNotificationAsync(NotificationId); await AuthorizeAndSetBannerAsync(); // Check edit permission and redirect if not allowed if (PermissionLevel != PermissionLevel.Edit) { return(RedirectToPage("/Notifications/Overview", new { NotificationId })); } var pendingTransferAlert = await _alertRepository.GetOpenAlertByNotificationId <TransferAlert>(NotificationId); if (pendingTransferAlert != null) { TransferAlert = pendingTransferAlert; return(Partial("_TransferPendingPartial", this)); } TransferRequest = new TransferRequestViewModel(); await SetDropdownsAsync(); return(Page()); }
public void Arrange() { _transferRequest = new TransferRequest(); MockMediator.Setup(x => x.SendAsync(It.IsAny <GetTransferRequestQueryRequest>())) .ReturnsAsync(new GetTransferRequestQueryResponse { TransferRequest = _transferRequest }); _transferRequestViewModel = new TransferRequestViewModel(); MockCommitmentMapper.Setup(x => x.MapToTransferRequestViewModel(It.IsAny <TransferRequest>())) .Returns(_transferRequestViewModel); MockHashingService.Setup(x => x.DecodeValue("ABC123")).Returns(123); MockHashingService.Setup(x => x.DecodeValue("XYZ789")).Returns(789); }
public TransferRequest MapToModel(TransferRequestViewModel viewModel) { TransferRequest model = new TransferRequest(); PropertyCopier <TransferRequestViewModel, TransferRequest> .Copy(viewModel, model); model.TRDate = viewModel.trDate; model.RequestedArrivalDate = viewModel.requestedArrivalDate; model.UnitId = viewModel.unit._id; model.UnitCode = viewModel.unit.code; model.UnitName = viewModel.unit.name; model.DivisionId = viewModel.unit.divisionId; model.DivisionCode = viewModel.unit.divisionCode; model.DivisionName = viewModel.unit.divisionName; model.CategoryCode = viewModel.category.code; model.CategoryId = viewModel.category._id; model.CategoryName = viewModel.category.name; model.Remark = viewModel.remark; model.TRNo = viewModel.trNo; model.IsPosted = viewModel.isPosted; model.IsCanceled = viewModel.isCanceled; model.TransferRequestDetails = new List <TransferRequestDetail>(); foreach (TransferRequestDetailViewModel transferRequestDetailViewModel in viewModel.details) { TransferRequestDetail transferRequestDetail = new TransferRequestDetail(); PropertyCopier <TransferRequestDetailViewModel, TransferRequestDetail> .Copy(transferRequestDetailViewModel, transferRequestDetail); transferRequestDetail.ProductId = transferRequestDetailViewModel.product._id; transferRequestDetail.ProductCode = transferRequestDetailViewModel.product.code; transferRequestDetail.ProductName = transferRequestDetailViewModel.product.name; transferRequestDetail.Quantity = transferRequestDetailViewModel.quantity; transferRequestDetail.UomId = transferRequestDetailViewModel.uom._id; transferRequestDetail.UomUnit = transferRequestDetailViewModel.uom.unit; transferRequestDetail.ProductRemark = transferRequestDetailViewModel.productRemark; transferRequestDetail.Grade = transferRequestDetailViewModel.grade; transferRequestDetail.Status = transferRequestDetailViewModel.status; model.TransferRequestDetails.Add(transferRequestDetail); } return(model); }
public TransferRequestViewModel MapToViewModel(TransferRequest model) { TransferRequestViewModel viewModel = new TransferRequestViewModel(); viewModel.trDate = model.TRDate; viewModel.remark = model.Remark; viewModel.unitId = model.UnitId; viewModel.unitName = model.UnitName; viewModel.unitCode = model.UnitCode; viewModel.categoryId = model.CategoryId; viewModel.categoryCode = model.CategoryCode; viewModel.categoryName = model.CategoryName; viewModel.divisionId = model.DivisionId; viewModel.divisionCode = model.DivisionCode; viewModel.divisionName = model.DivisionName; viewModel.requestedArrivalDate = model.RequestedArrivalDate; PropertyCopier <TransferRequest, TransferRequestViewModel> .Copy(model, viewModel); UnitViewModel Unit = new UnitViewModel() { _id = model.UnitId, code = model.UnitCode, name = model.UnitName, divisionId = model.DivisionId, divisionCode = model.DivisionCode, divisionName = model.DivisionName }; CategoryViewModel Category = new CategoryViewModel() { _id = model.CategoryId, code = model.CategoryCode, name = model.CategoryName, }; viewModel.trNo = model.TRNo; viewModel.unit = Unit; viewModel.category = Category; viewModel.remark = model.Remark; viewModel.trDate = model.TRDate; viewModel.requestedArrivalDate = model.RequestedArrivalDate; viewModel.isPosted = model.IsPosted; viewModel.isCanceled = model.IsCanceled; viewModel.details = new List <TransferRequestDetailViewModel>(); if (model.TransferRequestDetails != null) { foreach (TransferRequestDetail transferRequestDetail in model.TransferRequestDetails) { TransferRequestDetailViewModel transferRequestDetailViewModel = new TransferRequestDetailViewModel(); PropertyCopier <TransferRequestDetail, TransferRequestDetailViewModel> .Copy(transferRequestDetail, transferRequestDetailViewModel); UomViewModel Uom = new UomViewModel() { _id = transferRequestDetail.UomId, unit = transferRequestDetail.UomUnit }; transferRequestDetailViewModel.uom = Uom; transferRequestDetailViewModel.quantity = transferRequestDetail.Quantity; transferRequestDetailViewModel.grade = transferRequestDetail.Grade; ProductViewModel Product = new ProductViewModel() { _id = transferRequestDetail.ProductId, code = transferRequestDetail.ProductCode, name = transferRequestDetail.ProductName }; transferRequestDetailViewModel.product = Product; transferRequestDetailViewModel.productRemark = transferRequestDetail.ProductRemark; transferRequestDetailViewModel.status = transferRequestDetail.Status; transferRequestDetailViewModel.grade = transferRequestDetail.Grade; viewModel.details.Add(transferRequestDetailViewModel); } } return(viewModel); }
public MemoryStream GeneratePdfTemplate(TransferRequestViewModel viewModel) { BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.NOT_EMBEDDED); BaseFont bf_bold = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, BaseFont.NOT_EMBEDDED); var normal_font = FontFactory.GetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 9); var bold_font = FontFactory.GetFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 9); //Creating page. Document document = new Document(PageSize.A5); MemoryStream stream = new MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(document, stream); writer.CloseStream = false; document.Open(); PdfContentByte cb = writer.DirectContent; cb.BeginText(); cb.SetTextMatrix(15, 23); cb.SetFontAndSize(bf_bold, 14); cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "PT DAN LIRIS", 200, 550, 0); cb.SetFontAndSize(bf, 10); cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "BANARAN, GROGOL, SUKOHARJO", 200, 540, 0); cb.SetFontAndSize(bf_bold, 10); cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "PERMOHONAN TRANSFER", 200, 520, 0); cb.SetFontAndSize(bf, 9); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Nomor", 20, 500, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, ":", 55, 500, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, viewModel.trNo, 65, 500, 0); cb.SetFontAndSize(bf, 9); cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "Sukoharjo, ", 320, 500, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, $"{ viewModel.trDate.Day} { Bulan[viewModel.trDate.Month - 1]} { viewModel.trDate.Year}", 330, 500, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Dari", 20, 490, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, ":", 55, 490, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, viewModel.unit.name, 65, 490, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Mohon ditransfer barang tersebut di bawah ini:", 20, 470, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Kepada", 50, 306, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, ":", 110, 306, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Gudang Material", 120, 306, 0); cb.EndText(); #region CreateTable PdfPTable table = new PdfPTable(5); PdfPCell cell; table.TotalWidth = 360f; int rowsPerPage = 10; float[] widths = new float[] { 2f, 4f, 10f, 4f, 4f }; table.SetWidths(widths); cell = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; var rightCell = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; var leftCell = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; //Create cells headers. cell.Phrase = new Phrase("NO", bold_font); table.AddCell(cell); cell.Phrase = new Phrase("KODE", bold_font); table.AddCell(cell); cell.Phrase = new Phrase("BARANG", bold_font); table.AddCell(cell); cell.Phrase = new Phrase("JUMLAH", bold_font); table.AddCell(cell); cell.Phrase = new Phrase("HARGA", bold_font); table.AddCell(cell); int index = 1; int TotalRows = viewModel.details.Count; foreach (var detail in viewModel.details) { cell = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; cell.Phrase = new Phrase(index.ToString(), normal_font); table.AddCell(cell); cell.Phrase = new Phrase(detail.product.code, normal_font); table.AddCell(cell); string productGrade = detail.grade == "" ? " " : " GRADE " + detail.grade + " "; cell.Phrase = new Phrase(detail.product.name + productGrade + detail.productRemark, normal_font); table.AddCell(cell); cell.Phrase = new Phrase(string.Format("{0:n}", detail.quantity), normal_font); table.AddCell(cell); cell.Phrase = new Phrase("", normal_font); table.AddCell(cell); //if(index ) if (index % rowsPerPage == 0) { if (index == TotalRows) { continue; } else if (index == rowsPerPage) { table.WriteSelectedRows(0, -1, 15, 460, cb); } else { table.WriteSelectedRows(0, -1, 15, 500, cb); } for (var i = 0; i < rowsPerPage; i++) { table.DeleteLastRow(); } if (index != TotalRows) { document.NewPage(); } } index++; } var footerCell = new PdfPCell(); footerCell.Phrase = new Phrase("Kategori :", normal_font); footerCell.Colspan = 2; footerCell.Border = Rectangle.NO_BORDER; table.AddCell(footerCell); footerCell.Phrase = new Phrase(viewModel.category.name, normal_font); footerCell.Colspan = 3; footerCell.Border = Rectangle.NO_BORDER; table.AddCell(footerCell); var footerCell1 = new PdfPCell(); footerCell1.Phrase = new Phrase("Diminta Datang :", normal_font); footerCell1.Colspan = 2; footerCell1.Border = Rectangle.NO_BORDER; table.AddCell(footerCell1); footerCell1.Phrase = new Phrase($"{ viewModel.requestedArrivalDate.Day} { Bulan[viewModel.requestedArrivalDate.Month - 1]} { viewModel.requestedArrivalDate.Year}", normal_font); footerCell1.Colspan = 3; footerCell1.Border = Rectangle.NO_BORDER; table.AddCell(footerCell1); var footerCell2 = new PdfPCell(); footerCell2.Phrase = new Phrase("Keterangan :", normal_font); footerCell2.Colspan = 2; footerCell2.Border = Rectangle.NO_BORDER; table.AddCell(footerCell2); footerCell2.Phrase = new Phrase(viewModel.remark, normal_font); footerCell2.Colspan = 3; footerCell2.Border = Rectangle.NO_BORDER; table.AddCell(footerCell2); index--; if (index % rowsPerPage != 0) { if (index < rowsPerPage) { table.WriteSelectedRows(0, -1, 15, 460, cb); } else { table.WriteSelectedRows(0, -1, 15, 500, cb); } } #endregion #region CreateTable2 PdfPTable table2 = new PdfPTable(5); PdfPCell cell2; table2.TotalWidth = 360f; float[] widths2 = new float[] { 5f, 5f, 5f, 5.5f, 5f }; table2.SetWidths(widths2); cell2 = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; var rightCell2 = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; var leftCell2 = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; //Create cells headers. cell2.Phrase = new Phrase("ACC MENGETAHUI", bold_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("BAGIAN PEMBELIAN", bold_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("KEPALA BAGIAN", bold_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("YANG MEMERLUKAN", bold_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("PPIC", bold_font); table2.AddCell(cell2); cell2 = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; cell2.MinimumHeight = 50; cell2.Phrase = new Phrase("", normal_font); table2.AddCell(cell); cell2.Phrase = new Phrase("", normal_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("", normal_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("", normal_font); table2.AddCell(cell2); cell2.Phrase = new Phrase("", normal_font); table2.AddCell(cell2); table2.WriteSelectedRows(0, -1, 20, 130, cb); #endregion //cb.BeginText(); //cb.SetTextMatrix(15, 23); //cb.SetFontAndSize(bf, 9); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Kategori", 20, 200, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, ":", 70, 200, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, viewModel.category.name, 75, 200, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Diminta Datang", 20, 190, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, ":", 70, 190, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, viewModel.requestedArrivalDate.ToString("dd-MM-yyyy"), 75, 190, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Keterangan", 20, 180, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, ":", 70, 180, 0); //cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, viewModel.remark, 75, 180, 0); //cb.EndText(); document.Close(); byte[] byteInfo = stream.ToArray(); stream.Write(byteInfo, 0, byteInfo.Length); stream.Position = 0; return(stream); }