Exemplo n.º 1
0
 public void InsertGoodsReceipt(GoodsReceiptDTO goodsReceipt)
 {
     try
     {
         GoodsReceiptDAO.Instance.InsertGoodsReceipt(goodsReceipt);
     }
     catch (MySqlException ex)
     {
         throw new BUSException(ex.Message);
     }
 }
        public MySqlDataReader InsertGoodsReceipt(GoodsReceiptDTO goodsReceipt)
        {
            try
            {
                // query
                string query = string.Format("insert into GOODSRECEIPT values('{0}', '{1}', (select StaffID from Staff where StaffID='{2}'))",
                                             goodsReceipt.ID, goodsReceipt.ReceivedDate.ToString(), goodsReceipt.StaffID);
                // excute query
                MySqlDataReader reader = MySqlConnectionDAO.Instance.ExcuteQuery(query);

                return(reader);
            }
            finally
            {
            }
        }
        public async Task <ActionResult <GoodsReceipt> > PostGoodsReceipt(GoodsReceiptDTO goodsReceiptDTO)
        {
            PurchaseOrder purchaseOrder = _context.PurchaseOrders.FirstOrDefault(e => e.OrderReference == goodsReceiptDTO.PurchaseOrder);
            Supplier      supplier      = _context.Supplier.FirstOrDefault(e => e.SupplierCode == goodsReceiptDTO.SupplierCode);
            Site          site          = _context.Sites.FirstOrDefault(e => e.SiteCode == goodsReceiptDTO.SiteCode);
            Delivery      delivery      = _context.Deliveries.FirstOrDefault(e => e.DeliveryId == goodsReceiptDTO.DeliveryId);

            GoodsReceipt goodsReceipt = new GoodsReceipt
            {
                DateDelivered = goodsReceiptDTO.DateDelivered,
                PurchaseOrder = purchaseOrder,
                Supplier      = supplier,
                Site          = site,
                Delivery      = delivery
            };

            _context.GoodsReceipt.Add(goodsReceipt);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetGoodsReceipt", new { id = goodsReceipt.ReceiptId }, goodsReceipt));
        }
Exemplo n.º 4
0
        public async Task Can_add_GoodsReceipt()
        {
            const string DELIVERY_ID    = "DL002";
            const string SITE_CODE      = "SITE001";
            const int    PURCHASE_ORDER = 1;

            using (var context = new ProcurementDbContext(ContextOptions))
            {
                GoodsReceiptsController receiptsController = new GoodsReceiptsController(context);

                var goodsReceipt = new GoodsReceiptDTO {
                    DeliveryId = DELIVERY_ID, SiteCode = SITE_CODE, PurchaseOrder = PURCHASE_ORDER
                };

                var result = await receiptsController.PostGoodsReceipt(goodsReceipt);

                var viewResult   = Assert.IsType <ActionResult <GoodsReceipt> >(result);
                var actionResult = Assert.IsType <CreatedAtActionResult>(viewResult.Result);
                var receipt      = Assert.IsType <GoodsReceipt>(actionResult.Value);
                Assert.NotNull(receipt);
            }
        }
        protected override void SaveRelative(WarehouseAdjustment warehouseAdjustment, SaveRelativeOption saveRelativeOption)
        {
            base.SaveRelative(warehouseAdjustment, saveRelativeOption);

            if (warehouseAdjustment.HasPositiveLine)
            {
                IGoodsReceiptAPIRepository goodsReceiptAPIRepository = new GoodsReceiptAPIRepository(this.GenericWithDetailRepository.TotalSmartCodingEntities);
                IGoodsReceiptBaseService   goodsReceiptBaseService   = new GoodsReceiptBaseService(new GoodsReceiptRepository(this.GenericWithDetailRepository.TotalSmartCodingEntities));

                //VERY IMPORTANT: THE BaseService.UserID IS AUTOMATICALLY SET BY CustomControllerAttribute OF CONTROLLER, ONLY WHEN BaseService IS INITIALIZED BY CONTROLLER. BUT HERE, THE this.goodsReceiptBaseService IS INITIALIZED BY VehiclesInvoiceService => SO SHOULD SET goodsReceiptBaseService.UserID = this.UserID
                goodsReceiptBaseService.UserID = this.UserID;

                if (saveRelativeOption == SaveRelativeOption.Update)
                {
                    GoodsReceiptDTO goodsReceiptDTO = new GoodsReceiptDTO();

                    goodsReceiptDTO.EntryDate   = warehouseAdjustment.EntryDate;
                    goodsReceiptDTO.WarehouseID = warehouseAdjustment.WarehouseReceiptID;

                    goodsReceiptDTO.WarehouseAdjustmentID = warehouseAdjustment.WarehouseAdjustmentID;

                    goodsReceiptDTO.GoodsReceiptTypeID = (int)GlobalEnums.GoodsReceiptTypeID.WarehouseAdjustments;

                    goodsReceiptDTO.StorekeeperID = warehouseAdjustment.StorekeeperID;

                    goodsReceiptDTO.Description = warehouseAdjustment.Description;
                    goodsReceiptDTO.Remarks     = warehouseAdjustment.Remarks;

                    List <PendingWarehouseAdjustmentDetail> pendingWarehouseAdjustmentDetails = goodsReceiptAPIRepository.GetPendingWarehouseAdjustmentDetails(warehouseAdjustment.LocationID, null, warehouseAdjustment.WarehouseAdjustmentID, warehouseAdjustment.WarehouseID, null, false);
                    foreach (PendingWarehouseAdjustmentDetail pendingWarehouseAdjustmentDetail in pendingWarehouseAdjustmentDetails)
                    {
                        GoodsReceiptDetailDTO goodsReceiptDetailDTO = new GoodsReceiptDetailDTO()
                        {
                            GoodsReceiptID = goodsReceiptDTO.GoodsReceiptID,

                            WarehouseAdjustmentID        = pendingWarehouseAdjustmentDetail.WarehouseAdjustmentID,
                            WarehouseAdjustmentDetailID  = pendingWarehouseAdjustmentDetail.WarehouseAdjustmentDetailID,
                            WarehouseAdjustmentReference = pendingWarehouseAdjustmentDetail.PrimaryReference,
                            WarehouseAdjustmentEntryDate = pendingWarehouseAdjustmentDetail.PrimaryEntryDate,

                            BatchID        = pendingWarehouseAdjustmentDetail.BatchID,
                            BatchEntryDate = pendingWarehouseAdjustmentDetail.BatchEntryDate,

                            BinLocationID   = pendingWarehouseAdjustmentDetail.BinLocationID,
                            BinLocationCode = pendingWarehouseAdjustmentDetail.BinLocationCode,

                            CommodityID   = pendingWarehouseAdjustmentDetail.CommodityID,
                            CommodityCode = pendingWarehouseAdjustmentDetail.CommodityCode,
                            CommodityName = pendingWarehouseAdjustmentDetail.CommodityName,

                            Quantity   = (decimal)pendingWarehouseAdjustmentDetail.QuantityRemains,
                            LineVolume = (decimal)pendingWarehouseAdjustmentDetail.LineVolumeRemains,

                            PackID     = pendingWarehouseAdjustmentDetail.PackID,
                            PackCode   = pendingWarehouseAdjustmentDetail.PackCode,
                            CartonID   = pendingWarehouseAdjustmentDetail.CartonID,
                            CartonCode = pendingWarehouseAdjustmentDetail.CartonCode,
                            PalletID   = pendingWarehouseAdjustmentDetail.PalletID,
                            PalletCode = pendingWarehouseAdjustmentDetail.PalletCode,

                            PackCounts   = pendingWarehouseAdjustmentDetail.PackCounts,
                            CartonCounts = pendingWarehouseAdjustmentDetail.CartonCounts,
                            PalletCounts = pendingWarehouseAdjustmentDetail.PalletCounts
                        };
                        goodsReceiptDTO.ViewDetails.Add(goodsReceiptDetailDTO);
                    }

                    goodsReceiptBaseService.Save(goodsReceiptDTO, true);
                }

                if (saveRelativeOption == SaveRelativeOption.Undo)
                {//NOTES: THIS UNDO REQUIRE: JUST SAVE ONLY ONE GoodsReceipt FOR AN WarehouseAdjustment
                    int?goodsReceiptID = goodsReceiptAPIRepository.GetGoodsReceiptIDofWarehouseAdjustment(warehouseAdjustment.WarehouseAdjustmentID);
                    if (goodsReceiptID != null)
                    {
                        goodsReceiptBaseService.Delete((int)goodsReceiptID, true);
                    }
                    else
                    {
                        throw new Exception("Lỗi không tìm thấy phiếu nhập kho cũ của phiếu điều chỉnh kho này!" + "\r\n" + "\r\n" + "Vui lòng kiểm tra lại dữ liệu trước khi tiếp tục.");
                    }
                }
            }
        }
Exemplo n.º 6
0
 public override bool Editable(GoodsReceiptDTO dto)
 {
     return((dto.WarehouseAdjustmentID == null) && base.Editable(dto));
 }
Exemplo n.º 7
0
        private void SaveInit3006(PurchaseOrderDTO purchaseOrderDTO, int warehouseID)
        {
            if (this.purchaseOrderService.Save(purchaseOrderDTO))
            {
                PurchaseInvoiceDTO purchaseInvoiceDTO = new PurchaseInvoiceDTO();

                purchaseInvoiceDTO.EntryDate = purchaseOrderDTO.EntryDate;

                purchaseInvoiceDTO.SupplierID      = purchaseOrderDTO.SupplierID;
                purchaseInvoiceDTO.PurchaseOrderID = purchaseOrderDTO.PurchaseOrderID;

                purchaseInvoiceDTO.PriceTermID   = purchaseOrderDTO.PriceTermID;
                purchaseInvoiceDTO.PaymentTermID = purchaseOrderDTO.PaymentTermID;

                purchaseInvoiceDTO.PreparedPersonID = purchaseOrderDTO.PreparedPersonID;
                purchaseInvoiceDTO.ApproverID       = purchaseOrderDTO.ApproverID;


                ICollection <PurchaseInvoiceViewDetail> purchaseInvoiceViewDetails = this.purchaseInvoiceService.GetPurchaseInvoiceViewDetails(purchaseInvoiceDTO.PurchaseInvoiceID, purchaseInvoiceDTO.PurchaseOrderID == null ? 0 : (int)purchaseInvoiceDTO.PurchaseOrderID, purchaseInvoiceDTO.SupplierID, false);

                Mapper.Map <ICollection <PurchaseInvoiceViewDetail>, ICollection <PurchaseInvoiceDetailDTO> >(purchaseInvoiceViewDetails, purchaseInvoiceDTO.ViewDetails);


                if (purchaseInvoiceDTO.GetDetails() != null && purchaseInvoiceDTO.GetDetails().Count > 0)
                {
                    purchaseInvoiceDTO.GetDetails().Each(detailDTO =>
                    {
                        detailDTO.Quantity = detailDTO.QuantityRemains;

                        detailDTO.Amount      = Math.Round(detailDTO.Quantity * detailDTO.UnitPrice, 0);
                        detailDTO.GrossAmount = Math.Round(detailDTO.Quantity * detailDTO.GrossPrice, 0);
                        detailDTO.VATAmount   = Math.Round(detailDTO.GrossAmount - detailDTO.Amount, 0);

                        detailDTO.QuantityReceipt = 0;

                        purchaseInvoiceDTO.TotalQuantity    = Math.Round(purchaseInvoiceDTO.TotalQuantity + detailDTO.Quantity, 0);
                        purchaseInvoiceDTO.TotalAmount      = Math.Round(purchaseInvoiceDTO.TotalAmount + detailDTO.Amount, 0);
                        purchaseInvoiceDTO.TotalVATAmount   = Math.Round(purchaseInvoiceDTO.TotalVATAmount + detailDTO.VATAmount, 0);
                        purchaseInvoiceDTO.TotalGrossAmount = Math.Round(purchaseInvoiceDTO.TotalGrossAmount + detailDTO.GrossAmount, 0);
                    });
                }

                if (this.purchaseInvoiceService.Save(purchaseInvoiceDTO))
                {
                    GoodsReceiptDTO goodsReceiptDTO = new GoodsReceiptDTO();

                    goodsReceiptDTO.EntryDate = purchaseInvoiceDTO.EntryDate;

                    goodsReceiptDTO.VoucherID          = purchaseInvoiceDTO.PurchaseInvoiceID;
                    goodsReceiptDTO.GoodsReceiptTypeID = (int)GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice;

                    goodsReceiptDTO.PreparedPersonID = purchaseInvoiceDTO.PreparedPersonID;
                    goodsReceiptDTO.ApproverID       = purchaseInvoiceDTO.ApproverID;

                    ICollection <GoodsReceiptViewDetail> goodsReceiptViewDetails = this.goodsReceiptService.GetGoodsReceiptViewDetails(goodsReceiptDTO.GoodsReceiptID, goodsReceiptDTO.GoodsReceiptTypeID, goodsReceiptDTO.VoucherID, false);

                    Mapper.Map <ICollection <GoodsReceiptViewDetail>, ICollection <GoodsReceiptDetailDTO> >(goodsReceiptViewDetails, goodsReceiptDTO.ViewDetails);


                    if (goodsReceiptDTO.GetDetails() != null && goodsReceiptDTO.GetDetails().Count > 0)
                    {
                        goodsReceiptDTO.GetDetails().Each(detailDTO =>
                        {
                            detailDTO.Quantity = detailDTO.QuantityRemains;

                            detailDTO.Amount      = Math.Round(detailDTO.Quantity * detailDTO.UnitPrice, 0);
                            detailDTO.GrossAmount = Math.Round(detailDTO.Quantity * detailDTO.GrossPrice, 0);
                            detailDTO.VATAmount   = Math.Round(detailDTO.GrossAmount - detailDTO.Amount, 0);

                            detailDTO.QuantityIssue = 0;

                            goodsReceiptDTO.TotalQuantity    = Math.Round(goodsReceiptDTO.TotalQuantity + detailDTO.Quantity, 0);
                            goodsReceiptDTO.TotalAmount      = Math.Round(goodsReceiptDTO.TotalAmount + detailDTO.Amount, 0);
                            goodsReceiptDTO.TotalVATAmount   = Math.Round(goodsReceiptDTO.TotalVATAmount + detailDTO.VATAmount, 0);
                            goodsReceiptDTO.TotalGrossAmount = Math.Round(goodsReceiptDTO.TotalGrossAmount + detailDTO.GrossAmount, 0);


                            detailDTO.WarehouseID = warehouseID;
                        });
                    }
                    this.goodsReceiptService.Save(goodsReceiptDTO);
                }
            }
        }
Exemplo n.º 8
0
        private void SaveInit3006(PurchaseOrderDTO purchaseOrderDTO, int warehouseID)
        {
            if (this.purchaseOrderService.Save(purchaseOrderDTO))
            {
                PurchaseInvoiceDTO purchaseInvoiceDTO = new PurchaseInvoiceDTO();

                purchaseInvoiceDTO.EntryDate = purchaseOrderDTO.EntryDate;

                purchaseInvoiceDTO.SupplierID = purchaseOrderDTO.SupplierID;
                purchaseInvoiceDTO.PurchaseOrderID = purchaseOrderDTO.PurchaseOrderID;

                purchaseInvoiceDTO.PriceTermID = purchaseOrderDTO.PriceTermID;
                purchaseInvoiceDTO.PaymentTermID = purchaseOrderDTO.PaymentTermID;

                purchaseInvoiceDTO.PreparedPersonID = purchaseOrderDTO.PreparedPersonID;
                purchaseInvoiceDTO.ApproverID = purchaseOrderDTO.ApproverID;

                ICollection<PurchaseInvoiceViewDetail> purchaseInvoiceViewDetails = this.purchaseInvoiceService.GetPurchaseInvoiceViewDetails(purchaseInvoiceDTO.PurchaseInvoiceID, purchaseInvoiceDTO.PurchaseOrderID == null ? 0 : (int)purchaseInvoiceDTO.PurchaseOrderID, purchaseInvoiceDTO.SupplierID, false);

                Mapper.Map<ICollection<PurchaseInvoiceViewDetail>, ICollection<PurchaseInvoiceDetailDTO>>(purchaseInvoiceViewDetails, purchaseInvoiceDTO.ViewDetails);

                if (purchaseInvoiceDTO.GetDetails() != null && purchaseInvoiceDTO.GetDetails().Count > 0)
                    purchaseInvoiceDTO.GetDetails().Each(detailDTO =>
                    {
                        detailDTO.Quantity = detailDTO.QuantityRemains;

                        detailDTO.Amount = Math.Round(detailDTO.Quantity * detailDTO.UnitPrice, 0);
                        detailDTO.GrossAmount = Math.Round(detailDTO.Quantity * detailDTO.GrossPrice, 0);
                        detailDTO.VATAmount = Math.Round(detailDTO.GrossAmount - detailDTO.Amount, 0);

                        detailDTO.QuantityReceipt = 0;

                        purchaseInvoiceDTO.TotalQuantity = Math.Round(purchaseInvoiceDTO.TotalQuantity + detailDTO.Quantity, 0);
                        purchaseInvoiceDTO.TotalAmount = Math.Round(purchaseInvoiceDTO.TotalAmount + detailDTO.Amount, 0);
                        purchaseInvoiceDTO.TotalVATAmount = Math.Round(purchaseInvoiceDTO.TotalVATAmount + detailDTO.VATAmount, 0);
                        purchaseInvoiceDTO.TotalGrossAmount = Math.Round(purchaseInvoiceDTO.TotalGrossAmount + detailDTO.GrossAmount, 0);
                    });

                if (this.purchaseInvoiceService.Save(purchaseInvoiceDTO))
                {
                    GoodsReceiptDTO goodsReceiptDTO = new GoodsReceiptDTO();

                    goodsReceiptDTO.EntryDate = purchaseInvoiceDTO.EntryDate;

                    goodsReceiptDTO.VoucherID = purchaseInvoiceDTO.PurchaseInvoiceID;
                    goodsReceiptDTO.GoodsReceiptTypeID = (int)GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice;

                    goodsReceiptDTO.PreparedPersonID = purchaseInvoiceDTO.PreparedPersonID;
                    goodsReceiptDTO.ApproverID = purchaseInvoiceDTO.ApproverID;

                    ICollection<GoodsReceiptViewDetail> goodsReceiptViewDetails = this.goodsReceiptService.GetGoodsReceiptViewDetails(goodsReceiptDTO.GoodsReceiptID, goodsReceiptDTO.GoodsReceiptTypeID, goodsReceiptDTO.VoucherID, false);

                    Mapper.Map<ICollection<GoodsReceiptViewDetail>, ICollection<GoodsReceiptDetailDTO>>(goodsReceiptViewDetails, goodsReceiptDTO.ViewDetails);

                    if (goodsReceiptDTO.GetDetails() != null && goodsReceiptDTO.GetDetails().Count > 0)
                        goodsReceiptDTO.GetDetails().Each(detailDTO =>
                        {

                            detailDTO.Quantity = detailDTO.QuantityRemains;

                            detailDTO.Amount = Math.Round(detailDTO.Quantity * detailDTO.UnitPrice, 0);
                            detailDTO.GrossAmount = Math.Round(detailDTO.Quantity * detailDTO.GrossPrice, 0);
                            detailDTO.VATAmount = Math.Round(detailDTO.GrossAmount - detailDTO.Amount, 0);

                            detailDTO.QuantityIssue = 0;

                            goodsReceiptDTO.TotalQuantity = Math.Round(goodsReceiptDTO.TotalQuantity + detailDTO.Quantity, 0);
                            goodsReceiptDTO.TotalAmount = Math.Round(goodsReceiptDTO.TotalAmount + detailDTO.Amount, 0);
                            goodsReceiptDTO.TotalVATAmount = Math.Round(goodsReceiptDTO.TotalVATAmount + detailDTO.VATAmount, 0);
                            goodsReceiptDTO.TotalGrossAmount = Math.Round(goodsReceiptDTO.TotalGrossAmount + detailDTO.GrossAmount, 0);

                            detailDTO.WarehouseID = warehouseID;
                        });
                    this.goodsReceiptService.Save(goodsReceiptDTO);
                }
            }
        }