public IActionResult Get(int id)
 {
     try
     {
         var model     = facade.ReadById(id);
         var viewModel = mapper.Map <GarmentBeacukaiViewModel>(model);
         if (viewModel == null)
         {
             throw new Exception("Invalid Id");
         }
         foreach (var item in viewModel.items)
         {
             GarmentDeliveryOrder deliveryOrder = DOfacade.ReadById((int)item.deliveryOrder.Id);
             if (deliveryOrder != null)
             {
                 GarmentDeliveryOrderViewModel deliveryOrderViewModel = mapper.Map <GarmentDeliveryOrderViewModel>(deliveryOrder);
                 item.deliveryOrder.isInvoice = deliveryOrderViewModel.isInvoice;
                 item.deliveryOrder.items     = deliveryOrderViewModel.items;
             }
         }
         Dictionary <string, object> Result =
             new ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE)
             .Ok(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));
     }
 }
Exemplo n.º 2
0
        public async Task <GarmentPOMasterDistribution> GetNewData(GarmentDeliveryOrder garmentDeliveryOrder = null)
        {
            garmentDeliveryOrder = await garmentDeliveryOrderDataUtil.GetTestData4(garmentDeliveryOrder);

            return(new GarmentPOMasterDistribution
            {
                DOId = garmentDeliveryOrder.Id,
                DONo = garmentDeliveryOrder.DONo,
                Items = garmentDeliveryOrder.Items.SelectMany(i => i.Details.Select(d => new GarmentPOMasterDistributionItem
                {
                    DOItemId = i.Id,
                    DODetailId = d.Id,
                    SCId = 1,
                    Details = new List <GarmentPOMasterDistributionDetail>
                    {
                        new GarmentPOMasterDistributionDetail {
                            CostCalculationId = 1,
                            RONo = "RONo",
                            POSerialNumber = "POSerialNumber",
                            ProductId = d.ProductId,
                            ProductCode = d.ProductCode,
                            QuantityCC = (decimal)d.DOQuantity,
                            UomCCId = int.Parse(d.UomId),
                            UomCCUnit = d.UomUnit,
                            Conversion = 1,
                            Quantity = (decimal)d.DOQuantity,
                            UomId = int.Parse(d.UomId),
                            UomUnit = d.UomUnit
                        }
                    }
                })).ToList()
            });
        }
        public IActionResult Get(int id)
        {
            try
            {
                var model = facade.ReadById(id);
                var viewModel = mapper.Map<GarmentInternNoteViewModel>(model);
                if (viewModel == null)
                {
                    throw new Exception("Invalid Id");
                }
                else
                {
                    viewModel.isEdit = model.Position <= PurchasingGarmentExpeditionPosition.Purchasing;
                    foreach (GarmentInternNoteItemViewModel item in viewModel.items)
                    {
                        GarmentInvoice garmentInvoice = invoiceFacade.ReadById((int)item.garmentInvoice.Id);
                        if (garmentInvoice != null)
                        {
                            GarmentInvoiceViewModel invoiceViewModel = mapper.Map<GarmentInvoiceViewModel>(garmentInvoice);

                            item.garmentInvoice.items = invoiceViewModel.items;

                        }
                        foreach (GarmentInternNoteDetailViewModel detail in item.details)
                        {
                            GarmentDeliveryOrder deliveryOrder = deliveryOrderFacade.ReadById((int)detail.deliveryOrder.Id);
                            if (deliveryOrder != null)
                            {
                                GarmentDeliveryOrderViewModel deliveryOrderViewModel = mapper.Map<GarmentDeliveryOrderViewModel>(deliveryOrder);
                                detail.deliveryOrder.items = deliveryOrderViewModel.items;
                                if (detail.invoiceDetailId != 0)
                                {
                                    var invoiceItem = garmentInvoice.Items.First(s => s.Details.Any(d => d.Id == detail.invoiceDetailId));

                                    var invoiceDetail = invoiceItem.Details.First(i => i.Id == detail.invoiceDetailId);

                                    if (invoiceDetail != null)
                                    {
                                        detail.dODetailId = invoiceDetail.DODetailId;
                                    }
                                }

                            }
                        }
                    }
                }

                Dictionary<string, object> Result =
                    new ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE)
                    .Ok(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);
            }
        }
Exemplo n.º 4
0
        public async Task Should_Success_Get_by_PO()
        {
            var facadeDO = new GarmentDeliveryOrderFacade(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            GarmentDeliveryOrder dataDO = await dataUtilDO(facadeDO, GetCurrentMethod()).GetNewData();

            foreach (var i in dataDO.Items)
            {
                foreach (var d in i.Details)
                {
                    d.POSerialNumber = "PONO123";
                    d.RONo           = "RONO123";
                }
            }

            await facadeDO.Create(dataDO, USERNAME);

            var facade = new GarmentBeacukaiFacade(_dbContext(GetCurrentMethod()), GetServiceProvider().Object);

            GarmentBeacukai data = await dataUtil(facade, GetCurrentMethod()).GetNewData(USERNAME, dataDO);

            data.CustomsType = "BC 23";
            var Responses = await facade.Create(data, USERNAME);

            //var facadeReport = new GarmentBeacukaiFacade(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));

            var Response = facade.ReadBCByPOSerialNumbers("PONO123,PONO123");

            Assert.NotNull(Response);
        }
        public (string format, int counterId) GeneratePaymentBillNo()
        {
            string PaymentBill = null;
            GarmentDeliveryOrder deliveryOrder = (from data in dbSetDeliveryOrder
                                                  orderby data.PaymentBill descending
                                                  select data).FirstOrDefault();
            string year       = DateTimeOffset.Now.Year.ToString().Substring(2, 2);
            string month      = DateTimeOffset.Now.Month.ToString("D2");
            string day        = DateTimeOffset.Now.Day.ToString("D2");
            string formatDate = year + month + day;
            int    counterId  = 0;

            if (deliveryOrder.BillNo != null)
            {
                PaymentBill = deliveryOrder.PaymentBill;
                string date   = PaymentBill.Substring(2, 6);
                string number = PaymentBill.Substring(8);
                if (date == formatDate)
                {
                    counterId = Convert.ToInt32(number) + 1;
                }
                else
                {
                    counterId = 1;
                }
            }
            else
            {
                counterId = 1;
            }
            //PaymentBill = "BB" + formatDate + counterId.ToString("D3");

            return(string.Concat("BB", formatDate), counterId);
        }
Exemplo n.º 6
0
        public async Task <GarmentBeacukai> GetTestData(string user, GarmentDeliveryOrder garmentDeliveryOrder)
        {
            GarmentBeacukai model = await GetNewData(user, garmentDeliveryOrder);

            await facade.Create(model, user);

            return(model);
        }
        public async Task <GarmentCorrectionNote> GetTestData2(GarmentDeliveryOrder deliveryOrder)
        {
            var data = await GetNewDataC(deliveryOrder);

            await garmentCorrectionNoteFacade.Create(data);

            return(data);
        }
        public async Task <GarmentUnitReceiptNote> GetTestData(GarmentDeliveryOrder garmentDeliveryOrder, long?ticks = null)
        {
            var data = await GetNewData(ticks, garmentDeliveryOrder);

            await facade.Create(data);

            return(data);
        }
        public async Task <GarmentDeliveryOrder> GetTestData4(GarmentDeliveryOrder data = null)
        {
            data = data ?? await GetNewData4();

            await facade.Create(data, "Unit Test");

            return(data);
        }
        public ReportIndexDto(GarmentDeliveryOrder garmentDeliveryOrders, GarmentBeacukaiItem deliveryOrderCustoms, GarmentDeliveryOrderItem deliveryOrderItems, GarmentInvoiceItem deliveryOrderInvoiceItems, GarmentInvoice deliveryOrderInvoices, GarmentExternalPurchaseOrder deliveryOrderExternalPurchaseOrders, GarmentInternNoteDetail deliveryOrderInternalNoteDetails, GarmentInternNoteItem deliveryOrderInternalNoteItems, GarmentInternNote deliveryOrderInternalNotes)
        {
            if (deliveryOrderCustoms != null)
            {
                CustomsArrivalDate = deliveryOrderCustoms.ArrivalDate;
            }

            if (deliveryOrderExternalPurchaseOrders != null)
            {
                SupplierId             = deliveryOrderExternalPurchaseOrders.SupplierId;
                SupplierName           = deliveryOrderExternalPurchaseOrders.SupplierName;
                IsImportSupplier       = deliveryOrderExternalPurchaseOrders.SupplierImport;
                AccountingCategoryName = deliveryOrderExternalPurchaseOrders.Category;
                PurchasingCategoryName = deliveryOrderExternalPurchaseOrders.Category;
            }

            var dppAmount = 0.0;

            if (deliveryOrderInternalNoteDetails != null)
            {
                ProductName          = deliveryOrderInternalNoteDetails.ProductName;
                InternalNoteQuantity = deliveryOrderInternalNoteDetails.Quantity;
                dppAmount            = deliveryOrderInternalNoteDetails.PriceTotal;
                Total = dppAmount;
            }

            if (garmentDeliveryOrders != null)
            {
                GarmentDeliveryOrderId = (int)garmentDeliveryOrders.Id;
                GarmentDeliveryOrderNo = garmentDeliveryOrders.DONo;
                BillNo      = garmentDeliveryOrders.BillNo;
                PaymentBill = garmentDeliveryOrders.PaymentBill;
            }

            if (deliveryOrderInvoices != null)
            {
                InvoiceId = (int)deliveryOrderInvoices.Id;
                InvoiceNo = deliveryOrderInvoices.InvoiceNo;
                VATNo     = deliveryOrderInvoices.VatNo;

                var vatAmount = 0.0;
                if (deliveryOrderInvoices.UseVat && deliveryOrderInvoices.IsPayVat)
                {
                    vatAmount = dppAmount * 0.1;
                    Total    += vatAmount;
                }

                var incomeTaxAmount = 0.0;
                if (deliveryOrderInvoices.UseIncomeTax && deliveryOrderInvoices.IsPayTax)
                {
                    incomeTaxAmount = dppAmount * deliveryOrderInvoices.IncomeTaxRate / 100;
                    Total          += incomeTaxAmount;
                }

                VATAmount       = vatAmount;
                IncomeTaxAmount = incomeTaxAmount;
            }
        }
Exemplo n.º 11
0
        public async Task <int> Create(GarmentInternNote m, bool isImport, string user, int clientTimeZoneOffset = 7)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(m, user, USER_AGENT);

                    m.INNo = await GenerateNo(m, isImport, clientTimeZoneOffset);

                    m.INDate = DateTimeOffset.Now;

                    foreach (var item in m.Items)
                    {
                        GarmentInvoice garmentInvoice = this.dbContext.GarmentInvoices.FirstOrDefault(s => s.Id == item.InvoiceId);
                        if (garmentInvoice != null)
                        {
                            garmentInvoice.HasInternNote = true;
                        }
                        EntityExtension.FlagForCreate(item, user, USER_AGENT);
                        foreach (var detail in item.Details)
                        {
                            GarmentDeliveryOrder         garmentDeliveryOrder  = this.dbContext.GarmentDeliveryOrders.FirstOrDefault(s => s.Id == detail.DOId);
                            GarmentInternalPurchaseOrder internalPurchaseOrder = this.dbContext.GarmentInternalPurchaseOrders.FirstOrDefault(s => s.RONo.Equals(detail.RONo));
                            if (internalPurchaseOrder != null)
                            {
                                detail.UnitId   = internalPurchaseOrder.UnitId;
                                detail.UnitCode = internalPurchaseOrder.UnitCode;
                                detail.UnitName = internalPurchaseOrder.UnitName;
                            }
                            if (garmentDeliveryOrder != null)
                            {
                                garmentDeliveryOrder.InternNo = m.INNo;
                            }
                            EntityExtension.FlagForCreate(detail, user, USER_AGENT);

                            await _garmentDebtBalanceService.UpdateFromInternalNote((int)detail.DOId, new InternalNoteFormDto((int)m.Id, m.INNo));
                        }
                    }

                    this.dbSet.Add(m);

                    Created = await dbContext.SaveChangesAsync();

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

            return(Created);
        }
Exemplo n.º 12
0
 public GarmentInvoiceItem GetNewDataViewModel(GarmentDeliveryOrder garmentDeliveryOrder)
 {
     return(new GarmentInvoiceItem
     {
         DeliveryOrderId = garmentDeliveryOrder.Id,
         DeliveryOrderNo = garmentDeliveryOrder.DONo,
         DODate = garmentDeliveryOrder.DODate,
         Details = garmentInvoiceDetailDataUtil.GetNewDataViewModel(garmentDeliveryOrder.Items.ToList())
     });
 }
Exemplo n.º 13
0
        public async Task <GarmentInvoice> GetTestData2(string user, GarmentDeliveryOrder deliveryOrder)
        {
            GarmentInvoice model = await GetNewData(user, deliveryOrder);

            model.NPH = "acdg";
            model.NPN = "acdf";

            await facade.Create(model, user);

            return(model);
        }
Exemplo n.º 14
0
        public async Task <int> Create(GarmentBeacukai model, string username, int clientTimeZoneOffset = 7)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(model, username, USER_AGENT);

                    foreach (GarmentBeacukaiItem item in model.Items)
                    {
                        GarmentDeliveryOrder deliveryOrder = dbSetDeliveryOrder.Include(m => m.Items)
                                                             .ThenInclude(i => i.Details).FirstOrDefault(s => s.Id == item.GarmentDOId);
                        if (deliveryOrder != null)
                        {
                            if (model.BillNo == "" | model.BillNo == null)
                            {
                                deliveryOrder.BillNo = GenerateBillNo();
                            }
                            else
                            {
                                deliveryOrder.BillNo = model.BillNo;
                            }
                            deliveryOrder.PaymentBill = GeneratePaymentBillNo();
                            deliveryOrder.CustomsId   = model.Id;
                            double qty = 0;
                            foreach (var deliveryOrderItem in deliveryOrder.Items)
                            {
                                foreach (var detail in deliveryOrderItem.Details)
                                {
                                    qty += detail.DOQuantity;
                                }
                            }
                            item.TotalAmount = Convert.ToDecimal(deliveryOrder.TotalAmount);
                            item.TotalQty    = qty;
                            EntityExtension.FlagForCreate(item, username, USER_AGENT);
                        }
                    }

                    this.dbSet.Add(model);
                    Created = await dbContext.SaveChangesAsync();

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

            return(Created);
        }
        private void Get_Ppn_PDF_By_Id_NullInvoice(string correctionType)
        {
            var Model = this.Model;

            Model.CorrectionType = correctionType;

            var ViewModel = this.ViewModel;

            ViewModel.UseVat = true;

            var mockFacade = new Mock <IGarmentReturnCorrectionNoteFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(Model);

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <GarmentCorrectionNoteViewModel>(It.IsAny <GarmentCorrectionNote>()))
            .Returns(ViewModel);

            var garmentdeliveryOrder = new GarmentDeliveryOrder
            {
                DOCurrencyRate = 1,
                Items          = new List <GarmentDeliveryOrderItem>
                {
                    new GarmentDeliveryOrderItem
                    {
                        Details = Model.Items.Select(i => new GarmentDeliveryOrderDetail
                        {
                            Id = i.DODetailId
                        }).ToList()
                    }
                }
            };

            var mockGarmentDeliveryOrderFacade = new Mock <IGarmentDeliveryOrderFacade>();

            mockGarmentDeliveryOrderFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(garmentdeliveryOrder);

            var mockGarmentInvoiceFacade = new Mock <IGarmentInvoice>();

            mockGarmentInvoiceFacade.Setup(x => x.ReadByDOId(1))
            .Returns(new GarmentInvoice());

            GarmentReturnCorrectionNoteController controller = GetController(mockFacade, null, mockMapper, mockGarmentDeliveryOrderFacade, null, mockGarmentInvoiceFacade);

            controller.ControllerContext.HttpContext.Request.Headers["Accept"] = "application/pdf";

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

            Assert.NotNull(response.GetType().GetProperty("FileStream"));
        }
        private void Test_Get_PDF_By_Id(string correctionType)
        {
            var Model = this.Model;

            Model.CorrectionType = correctionType;

            var mockFacade = new Mock <IGarmentCorrectionNoteQuantityFacade>();

            mockFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(Model);

            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <GarmentCorrectionNoteViewModel>(It.IsAny <GarmentCorrectionNote>()))
            .Returns(ViewModel);
            var garmentdeliveryOrder = new GarmentDeliveryOrder
            {
                DOCurrencyRate = 1,
                Items          = new List <GarmentDeliveryOrderItem>
                {
                    new GarmentDeliveryOrderItem
                    {
                        Details = Model.Items.Select(i => new GarmentDeliveryOrderDetail
                        {
                            Id = i.DODetailId
                        }).ToList()
                    }
                }
            };

            var mockGarmentDeliveryOrderFacade = new Mock <IGarmentDeliveryOrderFacade>();

            mockGarmentDeliveryOrderFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(garmentdeliveryOrder);

            var mockGarmentInternalPurchaseOrderFacade = new Mock <IGarmentInternalPurchaseOrderFacade>();

            mockGarmentInternalPurchaseOrderFacade.Setup(x => x.ReadById(It.IsAny <int>()))
            .Returns(new GarmentInternalPurchaseOrder {
                UnitCode = "UnitCode"
            });

            GarmentCorrectionNoteQuantityController controller = GetController(mockFacade, null, mockMapper, mockGarmentDeliveryOrderFacade, mockGarmentInternalPurchaseOrderFacade);

            controller.ControllerContext.HttpContext.Request.Headers["Accept"] = "application/pdf";

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

            Assert.NotEqual(null, response.GetType().GetProperty("FileStream"));
        }
        public async Task <int> Create(GarmentInvoice model, string username, int clientTimeZoneOffset = 7)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    double _total = 0;
                    EntityExtension.FlagForCreate(model, username, USER_AGENT);
                    if (model.UseIncomeTax)
                    {
                        model.NPH = GenerateNPH();
                    }
                    if (model.UseVat)
                    {
                        model.NPN = GenerateNPN();
                    }
                    foreach (var item in model.Items)
                    {
                        _total += item.TotalAmount;
                        GarmentDeliveryOrder deliveryOrder = dbSetDeliveryOrder.FirstOrDefault(s => s.Id == item.DeliveryOrderId);
                        if (deliveryOrder != null)
                        {
                            deliveryOrder.IsInvoice = true;
                        }
                        EntityExtension.FlagForCreate(item, username, USER_AGENT);

                        foreach (var detail in item.Details)
                        {
                            EntityExtension.FlagForCreate(detail, username, USER_AGENT);
                        }
                    }
                    model.TotalAmount = _total;

                    this.dbSet.Add(model);
                    Created = await dbContext.SaveChangesAsync();

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

            return(Created);
        }
Exemplo n.º 18
0
        public int Delete(int id, string username)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var model = this.dbSet
                                .Include(m => m.Items)
                                .ThenInclude(i => i.Details)
                                .SingleOrDefault(m => m.Id == id && !m.IsDeleted);

                    EntityExtension.FlagForDelete(model, username, USER_AGENT);
                    foreach (var item in model.Items)
                    {
                        GarmentInvoice garmentInvoice = this.dbContext.GarmentInvoices.FirstOrDefault(s => s.Id == item.InvoiceId);

                        if (garmentInvoice != null)
                        {
                            garmentInvoice.HasInternNote = false;
                        }
                        EntityExtension.FlagForDelete(item, username, USER_AGENT);
                        foreach (var detail in item.Details)
                        {
                            GarmentDeliveryOrder garmentDeliveryOrder = this.dbContext.GarmentDeliveryOrders.FirstOrDefault(s => s.Id == detail.DOId);
                            if (garmentDeliveryOrder != null)
                            {
                                garmentDeliveryOrder.InternNo = null;
                            }
                            EntityExtension.FlagForDelete(detail, username, USER_AGENT);

                            var result = _garmentDebtBalanceService.EmptyInternalNote((int)garmentDeliveryOrder.Id).Result;
                        }
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
        public async Task <GarmentCorrectionNote> GetNewData(GarmentDeliveryOrder garmentDO = null)
        {
            var garmentDeliveryOrder = garmentDO ?? await Task.Run(() => garmentDeliveryOrderDataUtil.GetTestData());

            GarmentCorrectionNote garmentCorrectionNote = new GarmentCorrectionNote
            {
                CorrectionNo   = "NK1234L",
                CorrectionType = "Jumlah",
                CorrectionDate = DateTimeOffset.Now,
                DOId           = garmentDeliveryOrder.Id,
                DONo           = garmentDeliveryOrder.DONo,
                SupplierId     = garmentDeliveryOrder.SupplierId,
                SupplierCode   = garmentDeliveryOrder.SupplierCode,
                SupplierName   = garmentDeliveryOrder.SupplierName,
                Remark         = "Remark",
                NKPH           = "NKPH1234L",
                NKPN           = "NKPN1234L",
                Items          = new List <GarmentCorrectionNoteItem>()
            };

            foreach (var item in garmentDeliveryOrder.Items)
            {
                foreach (var detail in item.Details)
                {
                    garmentCorrectionNote.Items.Add(
                        new GarmentCorrectionNoteItem
                    {
                        DODetailId     = detail.Id,
                        EPOId          = item.EPOId,
                        EPONo          = item.EPONo,
                        PRId           = detail.PRId,
                        PRNo           = detail.PRNo,
                        POId           = detail.POId,
                        POSerialNumber = detail.POSerialNumber,
                        RONo           = detail.RONo,
                        ProductId      = detail.ProductId,
                        ProductCode    = detail.ProductCode,
                        ProductName    = detail.ProductName,
                        Quantity       = (decimal)detail.QuantityCorrection,
                        UomId          = Convert.ToInt32(detail.UomId),
                        UomIUnit       = detail.UomUnit,
                    });
                }
            }

            return(garmentCorrectionNote);
        }
        public async Task <GarmentDeliveryOrder> GetDatas(string user)
        {
            GarmentDeliveryOrder garmentDeliveryOrder = GetNewData();

            garmentDeliveryOrder.IsInvoice = false;
            foreach (var item in garmentDeliveryOrder.Items)
            {
                foreach (var detail in item.Details)
                {
                    detail.DOQuantity   = 0;
                    detail.DealQuantity = 2;
                }
            }

            await facade.Create(garmentDeliveryOrder, user, 7);

            return(garmentDeliveryOrder);
        }
Exemplo n.º 21
0
        public IActionResult Get(int id)
        {
            try
            {
                identityService.Token = Request.Headers["Authorization"].FirstOrDefault().Replace("Bearer ", "");
                var model     = facade.ReadById(id);
                var viewModel = mapper.Map <GarmentInvoiceViewModel>(model);
                if (viewModel == null)
                {
                    throw new Exception("Invalid Id");
                }
                foreach (var item in viewModel.items)
                {
                    GarmentDeliveryOrder deliveryOrder = DOfacade.ReadById((int)item.deliveryOrder.Id);
                    if (deliveryOrder != null)
                    {
                        GarmentDeliveryOrderViewModel deliveryOrderViewModel = mapper.Map <GarmentDeliveryOrderViewModel>(deliveryOrder);
                        item.deliveryOrder.items        = deliveryOrderViewModel.items;
                        item.deliveryOrder.useIncomeTax = deliveryOrderViewModel.useIncomeTax;
                        item.deliveryOrder.useVat       = deliveryOrderViewModel.useVat;
                        item.deliveryOrder.supplier     = deliveryOrderViewModel.supplier;
                        item.deliveryOrder.docurrency   = deliveryOrderViewModel.docurrency;
                        if (item.deliveryOrder.incomeTax != null)
                        {
                            item.deliveryOrder.incomeTax.Id   = (int)deliveryOrder.IncomeTaxId;
                            item.deliveryOrder.incomeTax.Name = deliveryOrder.IncomeTaxName;
                            item.deliveryOrder.incomeTax.Rate = (double)deliveryOrder.IncomeTaxRate;
                        }
                    }
                }

                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE)
                    .Ok(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 <GarmentCorrectionNote> GetNewDataC(GarmentDeliveryOrder deliveryOrder)
        {
            var data = await GetNewData(deliveryOrder);

            data.GarmentCorrectionNote.CorrectionType = "Jumlah";

            foreach (var item in data.GarmentDeliveryOrder.Items)
            {
                foreach (var detail in item.Details)
                {
                    var garmentCorrectionNoteItem = data.GarmentCorrectionNote.Items.First(i => i.DODetailId == detail.Id);
                    garmentCorrectionNoteItem.PricePerDealUnitBefore = (decimal)detail.PricePerDealUnitCorrection;
                    garmentCorrectionNoteItem.PricePerDealUnitAfter  = (decimal)detail.PricePerDealUnitCorrection;
                    garmentCorrectionNoteItem.PriceTotalBefore       = (decimal)detail.PriceTotalCorrection;
                    garmentCorrectionNoteItem.PriceTotalAfter        = (decimal)detail.PriceTotalCorrection + 1;
                }
            }

            return(data.GarmentCorrectionNote);
        }
Exemplo n.º 23
0
        public async Task <int> Update(int id, GarmentBeacukaiViewModel vm, GarmentBeacukai model, string user, int clientTimeZoneOffset = 7)
        {
            int Updated = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForUpdate(model, user, USER_AGENT);
                    foreach (GarmentBeacukaiItemViewModel itemViewModel in vm.items)
                    {
                        GarmentBeacukaiItem item = model.Items.FirstOrDefault(s => s.Id.Equals(itemViewModel.Id));
                        if (itemViewModel.selected == true)
                        {
                            EntityExtension.FlagForUpdate(item, user, USER_AGENT);
                        }
                        else
                        {
                            EntityExtension.FlagForDelete(item, user, USER_AGENT);
                            GarmentDeliveryOrder deleteDO = dbContext.GarmentDeliveryOrders.FirstOrDefault(s => s.Id == itemViewModel.deliveryOrder.Id);
                            deleteDO.BillNo      = null;
                            deleteDO.PaymentBill = null;
                            deleteDO.CustomsId   = 0;
                        }
                    }


                    this.dbSet.Update(model);
                    Updated = await dbContext.SaveChangesAsync();

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

            return(Updated);
        }
        public int Delete(int id, string username)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var model = this.dbSet
                                .Include(d => d.Items)
                                .ThenInclude(d => d.Details)
                                .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);

                    EntityExtension.FlagForDelete(model, username, USER_AGENT);

                    foreach (var item in model.Items)
                    {
                        GarmentDeliveryOrder garmentDeliveryOrder = dbSetDeliveryOrder.FirstOrDefault(s => s.Id == item.DeliveryOrderId);
                        if (garmentDeliveryOrder != null)
                        {
                            garmentDeliveryOrder.IsInvoice = false;
                        }
                        EntityExtension.FlagForDelete(item, username, USER_AGENT);
                        foreach (var detail in item.Details)
                        {
                            EntityExtension.FlagForDelete(detail, username, USER_AGENT);
                        }
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
        public int Delete(int id, string username)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var model = this.dbSet
                                .Include(d => d.Items)
                                .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);

                    EntityExtension.FlagForDelete(model, username, USER_AGENT);

                    foreach (var item in model.Items)
                    {
                        GarmentDeliveryOrder deliveryOrder = dbSetDeliveryOrder.FirstOrDefault(s => s.Id == item.GarmentDOId);
                        if (deliveryOrder != null)
                        {
                            deliveryOrder.BillNo      = null;
                            deliveryOrder.PaymentBill = null;
                            deliveryOrder.CustomsId   = 0;
                            EntityExtension.FlagForDelete(item, username, USER_AGENT);

                            var deleted = _garmentDebtBalanceService.RemoveCustoms((int)deliveryOrder.Id).Result;
                        }
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
        public string GenerateBillNo()
        {
            string BillNo = null;
            GarmentDeliveryOrder deliveryOrder = (from data in dbSetDeliveryOrder
                                                  orderby data.BillNo descending
                                                  select data).FirstOrDefault();
            string year       = DateTimeOffset.Now.Year.ToString().Substring(2, 2);
            string month      = DateTimeOffset.Now.Month.ToString("D2");
            string hour       = (DateTimeOffset.Now.Hour + 7).ToString("D2");
            string day        = DateTimeOffset.Now.Day.ToString("D2");
            string minute     = DateTimeOffset.Now.Minute.ToString("D2");
            string second     = DateTimeOffset.Now.Second.ToString("D2");
            string formatDate = year + month + day + hour + minute + second;
            int    counterId  = 0;

            if (deliveryOrder.BillNo != null)
            {
                BillNo = deliveryOrder.BillNo;
                string months = BillNo.Substring(4, 2);
                string number = BillNo.Substring(14);
                if (months == DateTimeOffset.Now.Month.ToString("D2"))
                {
                    counterId = Convert.ToInt32(number) + 1;
                }
                else
                {
                    counterId = 1;
                }
            }
            else
            {
                counterId = 1;
            }
            BillNo = "BP" + formatDate + counterId.ToString("D6");
            return(BillNo);
        }
Exemplo n.º 27
0
        public async Task <GarmentBeacukai> GetNewData(string user, GarmentDeliveryOrder garmentDeliveryOrder = null)
        {
            long nowTicks  = DateTimeOffset.Now.Ticks;
            var  garmentDO = garmentDeliveryOrder ?? await Task.Run(() => garmentDeliveryOrderDataUtil.GetNewData("User"));

            return(new GarmentBeacukai
            {
                BeacukaiNo = "BeacukaiNo",
                BeacukaiDate = DateTimeOffset.Now,
                SupplierId = It.IsAny <int>(),
                SupplierCode = "codeS",
                SupplierName = "nameS",
                BillNo = "BP181115160748000042",
                Bruto = 10,
                Netto = 10,
                Packaging = "COllY",
                PackagingQty = 2,
                CustomsType = "customsType",
                ValidationDate = DateTimeOffset.Now,
                CurrencyId = It.IsAny <int>(),
                CurrencyCode = "TEST",
                ArrivalDate = DateTimeOffset.Now,
                Items = new List <GarmentBeacukaiItem>
                {
                    new GarmentBeacukaiItem
                    {
                        GarmentDOId = garmentDO.Id,
                        DODate = garmentDO.DODate,
                        GarmentDONo = garmentDO.DONo,
                        ArrivalDate = garmentDO.ArrivalDate,
                        TotalAmount = (decimal)garmentDO.TotalAmount,
                        TotalQty = 50
                    }
                }
            });
        }
        public async Task <GarmentUnitReceiptNote> GetNewData(long?ticks = null, GarmentDeliveryOrder garmentDeliveryOrder = null)
        {
            long nowTicks = ticks ?? DateTimeOffset.Now.Ticks;

            garmentDeliveryOrder = garmentDeliveryOrder ?? await Task.Run(() => garmentDeliveryOrderDataUtil.GetTestData());

            var garmentUnitReceiptNote = new GarmentUnitReceiptNote
            {
                URNType  = "PEMBELIAN",
                UnitId   = nowTicks,
                UnitCode = string.Concat("UnitCode", nowTicks),
                UnitName = string.Concat("UnitName", nowTicks),

                SupplierId   = garmentDeliveryOrder.SupplierId,
                SupplierCode = garmentDeliveryOrder.SupplierCode,
                SupplierName = garmentDeliveryOrder.SupplierName,

                DOId = garmentDeliveryOrder.Id,
                DONo = garmentDeliveryOrder.DONo,

                DeletedReason = nowTicks.ToString(),

                DOCurrencyRate = garmentDeliveryOrder.DOCurrencyRate,

                ReceiptDate = DateTimeOffset.Now,

                Items = new List <GarmentUnitReceiptNoteItem>()
            };

            foreach (var item in garmentDeliveryOrder.Items)
            {
                foreach (var detail in item.Details)
                {
                    var garmentUnitReceiptNoteItem = new GarmentUnitReceiptNoteItem
                    {
                        DODetailId = detail.Id,

                        EPOItemId = detail.EPOItemId,

                        PRId     = detail.PRId,
                        PRNo     = detail.PRNo,
                        PRItemId = detail.PRItemId,

                        POId           = detail.POId,
                        POItemId       = detail.POItemId,
                        POSerialNumber = detail.POSerialNumber,

                        ProductId     = detail.ProductId,
                        ProductCode   = detail.ProductCode,
                        ProductName   = detail.ProductName,
                        ProductRemark = detail.ProductRemark,

                        RONo = detail.RONo,

                        ReceiptQuantity = (decimal)detail.ReceiptQuantity,

                        UomId   = long.Parse(detail.UomId),
                        UomUnit = detail.UomUnit,

                        PricePerDealUnit = (decimal)detail.PricePerDealUnit,

                        DesignColor = string.Concat("DesignColor", nowTicks),

                        SmallQuantity = (decimal)detail.SmallQuantity,

                        SmallUomId           = long.Parse(detail.SmallUomId),
                        SmallUomUnit         = detail.SmallUomUnit,
                        Conversion           = (decimal)detail.Conversion,
                        CorrectionConversion = (decimal)detail.Conversion,
                        DOCurrencyRate       = 1
                    };

                    garmentUnitReceiptNote.Items.Add(garmentUnitReceiptNoteItem);
                }
            }

            return(garmentUnitReceiptNote);
        }
 public DataUtilResult(BasicDataUtil dataUtil, GarmentPurchaseRequest purchaseRequest, List <GarmentInternalPurchaseOrder> internalPurchaseOrders, GarmentExternalPurchaseOrder externalPurchaseOrder, GarmentDeliveryOrder deliveryOrder)
 {
     this.dataUtil               = dataUtil;
     this.purchaseRequest        = purchaseRequest;
     this.internalPurchaseOrders = internalPurchaseOrders;
     this.externalPurchaseOrder  = externalPurchaseOrder;
     this.deliveryOrder          = deliveryOrder;
 }
Exemplo n.º 30
0
        public async Task <int> Update(int id, GarmentInternNote m, string user, int clientTimeZoneOffset = 7)
        {
            int Updated = 0;

            using (var transaction = dbContext.Database.BeginTransaction())
            {
                try
                {
                    if (m.Items != null)
                    {
                        double         total     = 0;
                        HashSet <long> detailIds = GetGarmentInternNoteId(id);
                        foreach (var itemId in detailIds)
                        {
                            GarmentInternNoteItem data = m.Items.FirstOrDefault(prop => prop.Id.Equals(itemId));
                            if (data == null)
                            {
                                GarmentInternNoteItem dataItem = dbContext.GarmentInternNoteItems.FirstOrDefault(prop => prop.Id.Equals(itemId));
                                EntityExtension.FlagForDelete(dataItem, user, USER_AGENT);
                                var            Details         = dbContext.GarmentInternNoteDetails.Where(prop => prop.GarmentItemINId.Equals(itemId)).ToList();
                                GarmentInvoice garmentInvoices = dbContext.GarmentInvoices.FirstOrDefault(s => s.Id.Equals(dataItem.InvoiceId));
                                if (garmentInvoices != null)
                                {
                                    garmentInvoices.HasInternNote = false;
                                }
                                foreach (GarmentInternNoteDetail detail in Details)
                                {
                                    GarmentDeliveryOrder garmentDeliveryOrder = this.dbContext.GarmentDeliveryOrders.FirstOrDefault(s => s.Id == detail.DOId);
                                    garmentDeliveryOrder.InternNo = null;

                                    EntityExtension.FlagForDelete(detail, user, USER_AGENT);
                                }
                            }
                            else
                            {
                                EntityExtension.FlagForUpdate(data, user, USER_AGENT);
                            }

                            foreach (GarmentInternNoteItem item in m.Items)
                            {
                                total += item.TotalAmount;
                                if (item.Id <= 0)
                                {
                                    GarmentInvoice garmentInvoice = this.dbContext.GarmentInvoices.FirstOrDefault(s => s.Id == item.InvoiceId);
                                    if (garmentInvoice != null)
                                    {
                                        garmentInvoice.HasInternNote = true;
                                    }
                                    EntityExtension.FlagForCreate(item, user, USER_AGENT);
                                }
                                else
                                {
                                    EntityExtension.FlagForUpdate(item, user, USER_AGENT);
                                }

                                foreach (GarmentInternNoteDetail detail in item.Details)
                                {
                                    if (item.Id <= 0)
                                    {
                                        GarmentDeliveryOrder         garmentDeliveryOrder  = this.dbContext.GarmentDeliveryOrders.FirstOrDefault(s => s.Id == detail.DOId);
                                        GarmentInternalPurchaseOrder internalPurchaseOrder = this.dbContext.GarmentInternalPurchaseOrders.FirstOrDefault(s => s.RONo == detail.RONo);
                                        if (internalPurchaseOrder != null)
                                        {
                                            detail.UnitId   = internalPurchaseOrder.UnitId;
                                            detail.UnitCode = internalPurchaseOrder.UnitCode;
                                            detail.UnitName = internalPurchaseOrder.UnitName;
                                        }
                                        if (garmentDeliveryOrder != null)
                                        {
                                            garmentDeliveryOrder.InternNo = m.INNo;
                                        }
                                        EntityExtension.FlagForCreate(detail, user, USER_AGENT);
                                    }
                                    else
                                    {
                                        EntityExtension.FlagForUpdate(detail, user, USER_AGENT);
                                    }
                                }
                            }
                        }
                    }
                    EntityExtension.FlagForUpdate(m, user, USER_AGENT);
                    this.dbSet.Update(m);
                    Updated = await dbContext.SaveChangesAsync();

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

            return(Updated);
        }