//implements Void
        public async Task <int> UpdateAsync(int id, ShipmentDocumentModel model)
        {
            EntityExtension.FlagForUpdate(model, _IdentityService.Username, _UserAgent);
            _DbSet.Update(model);
            model.IsVoid = true;
            foreach (var detail in model.Details)
            {
                EntityExtension.FlagForUpdate(detail, _IdentityService.Username, _UserAgent);
                _DetailDbSet.Update(detail);
                foreach (var item in detail.Items)
                {
                    EntityExtension.FlagForUpdate(item, _IdentityService.Username, _UserAgent);
                    _ItemDbSet.Update(item);
                    foreach (var packingReceiptItem in item.PackingReceiptItems)
                    {
                        EntityExtension.FlagForUpdate(packingReceiptItem, _IdentityService.Username, _UserAgent);
                        _PackingReceiptItemDbSet.Update(packingReceiptItem);
                    }
                }
            }

            await CreateInventoryDocumentIn(model);

            return(await _DbContext.SaveChangesAsync());
        }
        public async Task <int> CreateAsync(ShipmentDocumentModel model)
        {
            do
            {
                model.Code = CodeGenerator.Generate();
            }while (_DbSet.Any(d => d.Code.Equals(model.Code)));

            EntityExtension.FlagForCreate(model, _IdentityService.Username, _UserAgent);
            _DbSet.Add(model);
            foreach (var detail in model.Details)
            {
                EntityExtension.FlagForCreate(detail, _IdentityService.Username, _UserAgent);
                _DetailDbSet.Add(detail);
                foreach (var item in detail.Items)
                {
                    EntityExtension.FlagForCreate(item, _IdentityService.Username, _UserAgent);
                    _ItemDbSet.Add(item);
                    foreach (var packingReceiptItem in item.PackingReceiptItems)
                    {
                        EntityExtension.FlagForCreate(packingReceiptItem, _IdentityService.Username, _UserAgent);
                        _PackingReceiptItemDbSet.Add(packingReceiptItem);
                    }
                }
            }
            //UpdatePackingReceiptQuantity(model);
            await CreateInventoryDocumentOut(model);

            return(await _DbContext.SaveChangesAsync());
        }
Exemple #3
0
        private PdfPTable GetSignatureSection(ShipmentDocumentModel model, int timeoffset)
        {
            PdfPTable table = new PdfPTable(4)
            {
                WidthPercentage = 100
            };

            float[] widths = new float[] { 1f, 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.CreatedUtc.AddHours(timeoffset).ToString("dd MMMM yyyy")}", TEXT_FONT);
            table.AddCell(cell);

            cell.Phrase = new Phrase("Kasubsie Gudang Jadi", 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("Petugas Gudang", 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("", 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);
        }
Exemple #4
0
 public ShipmentPdfTemplate(ShipmentDocumentModel model, int timeoffset)
 {
     Title            = GetTitle();
     AddressTitle     = GetAddressTitle();
     DocumentTitle    = GetDocumentTitle();
     DocumentISO      = GetISO();
     DocumentInfo     = GetBuyerInfo(model);
     DetailInfo       = GetDetailInfo(model);
     NettoSection     = GetNettoSection();
     SignatureSection = GetSignatureSection(model, timeoffset);
 }
        public void Mapping_With_AutoMapper_Profiles()
        {
            var configuration = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <ShipmentDocumentProfile>();
            });
            var mapper = configuration.CreateMapper();

            ShipmentDocumentViewModel vm = new ShipmentDocumentViewModel {
                Id = 1
            };
            ShipmentDocumentModel model = mapper.Map <ShipmentDocumentModel>(vm);

            Assert.Equal(vm.Id, model.Id);
        }
        private async Task CreateInventoryDocumentOut(ShipmentDocumentModel model)
        {
            string referenceType = string.IsNullOrWhiteSpace(model.StorageName) ? model.StorageName : "";
            var    inventoryDoc  = new InventoryDocumentViewModel()
            {
                date          = model.DeliveryDate,
                referenceType = $"Pengiriman Barang {referenceType}",
                referenceNo   = model.Code,
                remark        = "Pengiriman Barang",
                type          = "OUT",
                storageId     = model.StorageId,
                storageCode   = model.StorageCode,
                storageName   = model.StorageName,
                items         = new List <InventoryDocumentItemViewModel>()
            };

            foreach (var detail in model.Details)
            {
                foreach (var item in detail.Items)
                {
                    foreach (var packingReceiptItem in item.PackingReceiptItems)
                    {
                        var data = new InventoryDocumentItemViewModel
                        {
                            productCode   = packingReceiptItem.ProductCode,
                            productName   = packingReceiptItem.ProductName,
                            productId     = packingReceiptItem.ProductId,
                            remark        = packingReceiptItem.Remark,
                            quantity      = packingReceiptItem.Quantity,
                            uomId         = packingReceiptItem.UOMId,
                            stockPlanning = 0,
                            uom           = packingReceiptItem.UOMUnit
                        };
                        inventoryDoc.items.Add(data);
                    }
                }
            }

            string uri = "inventory-documents";

            var httpClient = (IHttpClientService)_ServiceProvider.GetService(typeof(IHttpClientService));
            var response   = await httpClient.PostAsync($"{APIEndpoint.Inventory}{uri}", new StringContent(JsonConvert.SerializeObject(inventoryDoc).ToString(), Encoding.UTF8, "application/json"));

            response.EnsureSuccessStatusCode();
        }
Exemple #7
0
        public ShipmentDocumentModel GetNewData()
        {
            var TestData = new ShipmentDocumentModel()
            {
                BuyerAddress      = "BuyerAddress",
                BuyerCity         = "BuyerCity",
                BuyerCode         = "BuyerCode",
                BuyerContact      = "BuyerContact",
                BuyerCountry      = "BuyerCountry",
                BuyerId           = 1,
                BuyerName         = "BuyerName",
                BuyerNPWP         = " BuyerNPWP",
                BuyerTempo        = "BuyerTempo",
                BuyerType         = "BuyerType",
                DeliveryCode      = "DeliveryCode",
                DeliveryDate      = DateTimeOffset.Now,
                DeliveryReference = "Reference",
                Details           = new List <ShipmentDocumentDetailModel>()
                {
                    new ShipmentDocumentDetailModel()
                    {
                        Items = new List <ShipmentDocumentItemModel>()
                        {
                            new ShipmentDocumentItemModel()
                            {
                                PackingReceiptItems = new List <ShipmentDocumentPackingReceiptItemModel>()
                                {
                                    new ShipmentDocumentPackingReceiptItemModel()
                                    {
                                    }
                                }
                            }
                        }
                    }
                }
            };

            return(TestData);
        }
Exemple #8
0
        private PdfPTable GetBuyerInfo(ShipmentDocumentModel model)
        {
            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("Kepada Yth. Bagian Penjualan", TEXT_FONT);
            table.AddCell(cell);

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

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

            cell.Phrase = new Phrase($"U/ dikirim kepada: {model.BuyerName}", TEXT_FONT);
            table.AddCell(cell);

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

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

            return(table);
        }
Exemple #9
0
        private PdfPTable GetDetailInfo(ShipmentDocumentModel model)
        {
            PdfPTable table = new PdfPTable(8)
            {
                WidthPercentage = 100
            };

            float[] widths = new float[] { 2f, 1f, 1f, 1f, 1f, 1f, 1f, 1f };
            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);
            }

            double quantityTotal = 0;
            double lengthTotal   = 0;
            double weightTotal   = 0;

            foreach (var detail in model.Details)
            {
                foreach (var item in detail.Items)
                {
                    foreach (var packingReceiptItem in item.PackingReceiptItems)
                    {
                        cellLeft.Phrase = new Phrase(packingReceiptItem.ProductName, TEXT_FONT);
                        table.AddCell(cellLeft);

                        cellLeft.Phrase = new Phrase(detail.ProductionOrderDesignCode, TEXT_FONT);
                        table.AddCell(cellLeft);

                        cellLeft.Phrase = new Phrase(detail.ProductionOrderNo, TEXT_FONT);
                        table.AddCell(cellLeft);

                        cellLeft.Phrase = new Phrase(detail.ProductionOrderColorType, TEXT_FONT);
                        table.AddCell(cellLeft);

                        cellLeft.Phrase = new Phrase(packingReceiptItem.UOMUnit, TEXT_FONT);
                        table.AddCell(cellLeft);

                        cellRight.Phrase = new Phrase(packingReceiptItem.Quantity.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                        table.AddCell(cellRight);
                        quantityTotal += packingReceiptItem.Quantity;

                        cellRight.Phrase = new Phrase((packingReceiptItem.Quantity * packingReceiptItem.Length).ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                        table.AddCell(cellRight);
                        lengthTotal += (packingReceiptItem.Quantity * packingReceiptItem.Length);

                        cellRight.Phrase = new Phrase((packingReceiptItem.Quantity * packingReceiptItem.Weight).ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
                        table.AddCell(cellRight);
                        weightTotal += (packingReceiptItem.Quantity * packingReceiptItem.Weight);
                    }
                }
            }

            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(quantityTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase(lengthTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            cellRight.Phrase = new Phrase(weightTotal.ToString("N2", CultureInfo.InvariantCulture), TEXT_FONT);
            table.AddCell(cellRight);

            return(table);
        }