public async Task Should_NotValid_Post()
        {
            var dataUtil = new MaterialDeliveryNoteWeavingViewModel();
            //v
            var serviceMock = new Mock <IMaterialDeliveryNoteWeavingService>();

            serviceMock.Setup(s => s.Create(It.IsAny <MaterialDeliveryNoteWeavingViewModel>()));
            var service = serviceMock.Object;

            var identityProviderMock = new Mock <IIdentityProvider>();
            var identityProvider     = identityProviderMock.Object;

            var validateServiceMock = new Mock <IValidateService>();

            validateServiceMock.Setup(s => s.Validate(It.IsAny <MaterialDeliveryNoteWeavingViewModel>()))
            .Verifiable();
            var validateService = validateServiceMock.Object;

            var controller = GetController(service, identityProvider, validateService);

            controller.ModelState.AddModelError("test", "test");
            //controller.ModelState.IsValid == false;
            var response = await controller.Post(dataUtil);

            Assert.Equal((int)HttpStatusCode.BadRequest, GetStatusCode(response));
        }
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] MaterialDeliveryNoteWeavingViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                var result = new
                {
                    error = ResultFormatter.FormatErrorMessage(ModelState)
                };
                return(new BadRequestObjectResult(result));
            }
            try
            {
                VerifyUser();
                ValidateService.Validate(viewModel);
                await _service.Update(id, viewModel);

                return(NoContent());
            }
            catch (ServiceValidationException ex)
            {
                var Result = new
                {
                    error      = ResultFormatter.Fail(ex),
                    apiVersion = "1.0.0",
                    statusCode = HttpStatusCode.BadRequest,
                    message    = "Data does not pass validation"
                };

                return(new BadRequestObjectResult(Result));
            }
            catch (Exception ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
        public void Validate_DefaultValue()
        {
            MaterialDeliveryNoteWeavingViewModel viewModel = new MaterialDeliveryNoteWeavingViewModel();

            var result = viewModel.Validate(null);

            Assert.True(result.Count() > 0);
        }
示例#4
0
        public async Task Update(int id, MaterialDeliveryNoteWeavingViewModel viewModel)
        {
            var model = new Data.MaterialDeliveryNoteWeavingModel(viewModel.Code, viewModel.DateSJ.GetValueOrDefault(), viewModel.selectedDO.Id.GetValueOrDefault(), viewModel.selectedDO.DOSalesNo, viewModel.SendTo, viewModel.Unit.Id.GetValueOrDefault(), viewModel.Unit.Name,
                                                                  viewModel.Buyer.Id.GetValueOrDefault(), viewModel.Buyer.Code, viewModel.Buyer.Name, viewModel.NumberBonOut, viewModel.Storage.Id, viewModel.Storage.Code, viewModel.Storage.Name,
                                                                  viewModel.Remark,
                                                                  viewModel.ItemsMaterialDeliveryNoteWeaving.Select(s => new ItemsMaterialDeliveryNoteWeavingModel(s.itemNoSOP, s.itemMaterialName, s.itemGrade, s.itemType, s.itemCode, s.inputBale.GetValueOrDefault(), s.inputPiece.GetValueOrDefault(), s.inputMeter.GetValueOrDefault(), s.inputKg.GetValueOrDefault())).ToList());

            await _MaterialDeliveryNoteWeavingRepository.UpdateAsync(id, model);
        }
示例#5
0
        private PdfPTable GetSignatureSection(MaterialDeliveryNoteWeavingViewModel model, int timeoffset)
        {
            PdfPTable table = new PdfPTable(3)
            {
                WidthPercentage = 100
            };

            float[] widths = new float[] { 1f, 1f, 1f };
            table.SetWidths(widths);
            PdfPCell cell = new PdfPCell()
            {
                Border = Rectangle.NO_BORDER,
                HorizontalAlignment = Element.ALIGN_CENTER,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
            };

            //cell.Phrase = new Phrase("Mengetahui", TEXT_FONT);
            //table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase($"Sukoharjo, {model.DateSJ?.AddHours(timeoffset).ToString("dd MMMM yyyy")}", TEXT_FONT);
            table.AddCell(cell);

            //cell.Phrase = new Phrase("Kasubsie Gudang Dyeing Printing", TEXT_FONT);
            //table.AddCell(cell);
            cell.Phrase = new Phrase("Audit", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("Ekspedisi", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("Gudang Dyeing Printing", TEXT_FONT);
            table.AddCell(cell);

            for (var i = 0; i < 11; i++)
            {
                cell.Phrase = new Phrase("", TEXT_FONT);
                table.AddCell(cell);
                cell.Phrase = new Phrase("", TEXT_FONT);
                table.AddCell(cell);
                cell.Phrase = new Phrase("", TEXT_FONT);
                table.AddCell(cell);
            }

            cell.Phrase = new Phrase("(                        )", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("(                        )", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase($"({model.CreatedBy})", TEXT_FONT);
            table.AddCell(cell);



            return(table);
        }
示例#6
0
        public async Task <MaterialDeliveryNoteWeavingViewModel> ReadById(int id)
        {
            var model = await _MaterialDeliveryNoteWeavingRepository.ReadByIdAsync(id);

            if (model == null)
            {
                return(null);
            }
            MaterialDeliveryNoteWeavingViewModel vm = MapToViewModel(model);

            return(vm);
        }
示例#7
0
 public MaterialDeliveryNoteWeavingPdfTemplate(MaterialDeliveryNoteWeavingViewModel model, int timeoffset)
 {
     Title            = GetTitle();
     AddressTitle     = GetAddressTitle();
     DocumentTitle    = GetDocumentTitle();
     DocumentISO      = GetISO();
     DocumentInfo     = GetBuyerInfo(model, timeoffset);
     GroupDetailInfo  = GetGroupDetailInfo(model);
     DetailInfo       = GetDetailInfo(model);
     NettoSection     = GetNettoSection();
     SignatureSection = GetSignatureSection(model, timeoffset);
 }
        public void Validate_When_ItemsMaterialDeliveryNoteWeaving_moreThan1()
        {
            MaterialDeliveryNoteWeavingViewModel viewModel = new MaterialDeliveryNoteWeavingViewModel();

            viewModel.ItemsMaterialDeliveryNoteWeaving = new List <ItemsMaterialDeliveryNoteWeavingViewModel>()
            {
                new ItemsMaterialDeliveryNoteWeavingViewModel()
            };

            var result = viewModel.Validate(null);

            Assert.True(result.Count() > 0);
        }
示例#9
0
        private MaterialDeliveryNoteWeavingViewModel MapToViewModel(Data.MaterialDeliveryNoteWeavingModel model)
        {
            var vm = new MaterialDeliveryNoteWeavingViewModel()
            {
                Id         = model.Id,
                Code       = model.Code,
                DateSJ     = model.DateSJ,
                selectedDO = new DeliveryOrderMaterialDeliveryNoteWeaving()
                {
                    Id        = model.DoSalesNumberId,
                    DOSalesNo = model.DoSalesNumber
                },
                SendTo = model.SendTo,
                Unit   = new UnitMaterialDeliveryNoteWeaving()
                {
                    Id   = model.UnitId,
                    Name = model.UnitName
                },
                Buyer = new BuyerMaterialDeliveryNoteWeaving()
                {
                    Id   = model.BuyerId,
                    Code = model.BuyerCode,
                    Name = model.BuyerName
                },
                NumberBonOut = model.NumberOut,
                Storage      = new StorageMaterialDeliveryNoteWeaving()
                {
                    Id   = model.StorageId,
                    Code = model.StorageCode,
                    Name = model.StorageName
                },
                Remark = model.Remark,
                ItemsMaterialDeliveryNoteWeaving = model.ItemsMaterialDeliveryNoteWeaving.Select(d => new ItemsMaterialDeliveryNoteWeavingViewModel()
                {
                    itemNoSOP        = d.ItemNoSOP,
                    itemMaterialName = d.ItemMaterialName,
                    itemGrade        = d.ItemGrade,
                    itemType         = d.ItemType,
                    itemCode         = d.ItemCode,
                    inputBale        = d.InputBale,
                    inputPiece       = d.InputPiece,
                    inputMeter       = d.InputMeter,
                    inputKg          = d.InputKg
                }).ToList()
            };

            return(vm);
        }
示例#10
0
        public async Task Create(MaterialDeliveryNoteWeavingViewModel viewModel)
        {
            var model = new Data.MaterialDeliveryNoteWeavingModel(null, viewModel.DateSJ.GetValueOrDefault(), viewModel.selectedDO.Id.GetValueOrDefault(), viewModel.selectedDO.DOSalesNo, viewModel.SendTo, viewModel.Unit.Id.GetValueOrDefault(), viewModel.Unit.Name,
                                                                  viewModel.Buyer.Id.GetValueOrDefault(), viewModel.Buyer.Code, viewModel.Buyer.Name, viewModel.NumberBonOut, viewModel.Storage.Id, viewModel.Storage.Code, viewModel.Storage.Name,
                                                                  viewModel.Remark,
                                                                  viewModel.ItemsMaterialDeliveryNoteWeaving.Select(s => new ItemsMaterialDeliveryNoteWeavingModel(s.itemNoSOP, s.itemMaterialName, s.itemGrade, s.itemType, s.itemCode, s.inputBale.GetValueOrDefault(), s.inputPiece.GetValueOrDefault(), s.inputMeter.GetValueOrDefault(), s.inputKg.GetValueOrDefault())).ToList());

            foreach (var itm in viewModel.ItemsMaterialDeliveryNoteWeaving)
            {
                var modelItem = new ItemsMaterialDeliveryNoteWeavingModel(itm.itemNoSOP, itm.itemMaterialName, itm.itemGrade, itm.itemType, itm.itemCode, itm.inputBale.GetValueOrDefault(), itm.inputPiece.GetValueOrDefault(), itm.inputMeter.GetValueOrDefault(), itm.inputKg.GetValueOrDefault());

                await _ItemsMaterialDeliveryNoteWeavingRepository.InsertAsync(modelItem);
            }

            await _MaterialDeliveryNoteWeavingRepository.InsertAsync(model);
        }
示例#11
0
        private PdfPTable GetDetailInfo(MaterialDeliveryNoteWeavingViewModel model)
        {
            PdfPTable container = new PdfPTable(1)
            {
                WidthPercentage = 100
            };

            float[] containerWidths = new float[] { 1f };
            container.SetWidths(containerWidths);

            PdfPCell cellContainer = new PdfPCell()
            {
                Border = Rectangle.NO_BORDER
            };

            PdfPTable table = new PdfPTable(bodyTableColumns.Count)
            {
                WidthPercentage = 100
            };

            float[] widths = new float[] { 1f, 3f, 2f, 2f, 2f, 2f, 2f, 2f };
            table.SetWidths(widths);
            PdfPCell cellHeader = new PdfPCell()
            {
                HorizontalAlignment = Element.ALIGN_CENTER,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
            };

            PdfPCell cellRight = new PdfPCell()
            {
                HorizontalAlignment = Element.ALIGN_RIGHT,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
            };

            PdfPCell cellLeft = new PdfPCell()
            {
                HorizontalAlignment = Element.ALIGN_LEFT,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
            };

            foreach (var column in bodyTableColumns)
            {
                cellHeader.Phrase = new Phrase(column, TEXT_FONT_BOLD);
                table.AddCell(cellHeader);
            }

            decimal balTotal   = 0;
            decimal pieceTotal = 0;
            decimal meterTotal = 0;
            decimal kgTotal    = 0;
            int     index      = 1;

            foreach (var detail in model.ItemsMaterialDeliveryNoteWeaving)
            {
                cellRight.Phrase = new Phrase(index++.ToString(), TEXT_FONT);
                table.AddCell(cellRight);

                cellHeader.Phrase = new Phrase(detail.itemMaterialName, TEXT_FONT);
                table.AddCell(cellHeader);

                cellHeader.Phrase = new Phrase(detail.itemGrade, TEXT_FONT);
                table.AddCell(cellHeader);

                cellHeader.Phrase = new Phrase(detail.itemType, TEXT_FONT);
                table.AddCell(cellHeader);

                cellRight.Phrase = new Phrase(detail.inputBale?.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                table.AddCell(cellRight);
                balTotal += detail.inputBale.GetValueOrDefault();

                cellRight.Phrase = new Phrase(detail.inputPiece?.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                table.AddCell(cellRight);
                pieceTotal += detail.inputPiece.GetValueOrDefault();

                cellRight.Phrase = new Phrase(detail.inputMeter?.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                table.AddCell(cellRight);
                meterTotal += detail.inputMeter.GetValueOrDefault();

                cellRight.Phrase = new Phrase(detail.inputKg?.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                table.AddCell(cellRight);
                kgTotal += detail.inputKg.GetValueOrDefault();
            }

            //PdfPCell cellColspan = new PdfPCell()
            //{
            //    Colspan = 5,
            //    HorizontalAlignment = Element.ALIGN_CENTER,
            //    VerticalAlignment = Element.ALIGN_MIDDLE,
            //};

            //cellColspan.Phrase = new Phrase("Total", TEXT_FONT);
            //table.AddCell(cellColspan);

            cellRight.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase(balTotal == 0 ? "" : balTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase(pieceTotal == 0 ? "" : pieceTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase(meterTotal == 0 ? "" : meterTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase(kgTotal == 0 ? "" : kgTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            container.AddCell(table);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);
            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);
            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);
            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            return(container);
        }
示例#12
0
        private PdfPTable GetGroupDetailInfo(MaterialDeliveryNoteWeavingViewModel model)
        {
            PdfPTable container = new PdfPTable(2)
            {
                WidthPercentage = 100
            };

            float[] widths = new float[] { 1f, 1f };
            container.SetWidths(widths);

            PdfPCell cellContainer = new PdfPCell()
            {
                Border = Rectangle.NO_BORDER
            };

            PdfPTable table = new PdfPTable(3)
            {
                WidthPercentage = 100,
            };

            float[] tableWidths = new float[] { 1f, 5f, 2f };
            table.SetWidths(tableWidths);

            PdfPCell cellHeader = new PdfPCell()
            {
                HorizontalAlignment = Element.ALIGN_CENTER,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
            };

            PdfPCell cellRight = new PdfPCell()
            {
                HorizontalAlignment = Element.ALIGN_RIGHT,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
            };


            foreach (var column in groupTableColumns)
            {
                cellHeader.Phrase = new Phrase(column, TEXT_FONT_BOLD);
                table.AddCell(cellHeader);
            }

            cellHeader.Phrase = new Phrase("Total", TEXT_FONT);
            table.AddCell(cellHeader);

            cellHeader.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cellHeader);

            container.AddCell(table);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            cellContainer.Phrase = new Phrase("", TEXT_FONT);
            container.AddCell(cellContainer);

            return(container);
        }
示例#13
0
        private PdfPTable GetBuyerInfo(MaterialDeliveryNoteWeavingViewModel model, int timeoffset)
        {
            PdfPTable table = new PdfPTable(3)
            {
                WidthPercentage = 100
            };

            float[] widths = new float[] { 1f, 1f, 1f };
            table.SetWidths(widths);
            PdfPCell cell = new PdfPCell()
            {
                Border = Rectangle.NO_BORDER,
                HorizontalAlignment = Element.ALIGN_LEFT,
                VerticalAlignment   = Element.ALIGN_MIDDLE,
                PaddingBottom       = 2f
            };


            cell.Phrase = new Phrase($"Tanggal S.J : {model.DateSJ?.AddHours(timeoffset).ToString("dd MMMM yyyy")}", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase($"Bagian : {model.Unit.Name}", TEXT_FONT);
            table.AddCell(cell);
            //cell.Phrase = new Phrase($"NO. : {model.BonNo}", TEXT_FONT);
            //table.AddCell(cell);

            //string buyerName = model.ShippingProductionOrders.FirstOrDefault()?.Buyer;
            //cell.Phrase = new Phrase($"U/ dikirim kepada: {buyerName}", TEXT_FONT);
            //table.AddCell(cell);

            //cell.Phrase = new Phrase("", TEXT_FONT);
            //table.AddCell(cell);

            //cell.Phrase = new Phrase($"Sesuai DO. NO. : {model.DeliveryOrder.No}", TEXT_FONT);
            //table.AddCell(cell);

            cell.Phrase = new Phrase($"Dikirim Kepada : {model.SendTo}", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);

            //cell.Phrase = new Phrase($"Tanggal : { model.Date.AddHours(timeoffset).ToString("dd MMMM yyyy")}", TEXT_FONT);
            cell.Phrase = new Phrase($"Nomor : {model.Code}", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);

            //cell.Phrase = new Phrase($"Jumlah Baris : { model.ShippingProductionOrders.Count }", TEXT_FONT);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);
            cell.Phrase = new Phrase("", TEXT_FONT);
            table.AddCell(cell);

            return(table);
        }