public dynamic GetInfoDetail(int Id)
        {
            PurchaseOrderDetail model = new PurchaseOrderDetail();

            try
            {
                model = _purchaseOrderDetailService.GetObjectById(Id);
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Id,
                model.ItemId,
                Item = _itemService.GetObjectById(model.ItemId).Name,
                model.Quantity,
                model.Price,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public dynamic GetListDetail(string _search, long nd, int rows, int?page, string sidx, string sord, int id, string filters = "")
        {
            // Construct where statement

            string strWhere = GeneralFunction.ConstructWhere(filters);

            // Get Data
            var query = _purchaseReceivalDetailService.GetObjectsByPurchaseReceivalId(id).Where(d => d.IsDeleted == false);

            var list = query as IEnumerable <PurchaseReceivalDetail>;

            var pageIndex    = Convert.ToInt32(page) - 1;
            var pageSize     = rows;
            var totalRecords = query.Count();
            var totalPages   = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

            // default last page
            if (totalPages > 0)
            {
                if (!page.HasValue)
                {
                    pageIndex = totalPages - 1;
                    page      = totalPages;
                }
            }

            list = list.Skip(pageIndex * pageSize).Take(pageSize);

            return(Json(new
            {
                total = totalPages,
                page = page,
                records = totalRecords,
                rows = (
                    from model in list
                    select new
                {
                    id = model.Id,
                    cell = new object[] {
                        model.Code,
                        model.PurchaseOrderDetailId,
                        _purchaseOrderDetailService.GetObjectById(model.PurchaseOrderDetailId).Code,
                        model.ItemId,
                        _itemService.GetObjectById(model.ItemId).Name,
                        model.Quantity,
                    }
                }).ToArray()
            }, JsonRequestBehavior.AllowGet));
        }
示例#3
0
 public PurchaseReceivalDetail ConfirmObject(PurchaseReceivalDetail purchaseReceivalDetail, DateTime ConfirmationDate, IPurchaseReceivalService _purchaseReceivalService,
                                             IPurchaseOrderDetailService _purchaseOrderDetailService, IStockMutationService _stockMutationService,
                                             IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService)
 {
     purchaseReceivalDetail.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(purchaseReceivalDetail, this, _purchaseOrderDetailService))
     {
         purchaseReceivalDetail = _repository.ConfirmObject(purchaseReceivalDetail);
         PurchaseReceival      purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseReceivalDetail.PurchaseReceivalId);
         WarehouseItem         warehouseItem    = _warehouseItemService.FindOrCreateObject(purchaseReceival.WarehouseId, purchaseReceivalDetail.ItemId);
         Item                  item             = _itemService.GetObjectById(purchaseReceivalDetail.ItemId);
         IList <StockMutation> stockMutations   = _stockMutationService.CreateStockMutationForPurchaseReceival(purchaseReceivalDetail, warehouseItem);
         foreach (var stockMutation in stockMutations)
         {
             // decimal itemPrice = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId).Price;
             // item.AvgCost = _itemService.CalculateAvgCost(item, purchaseReceivalDetail.Quantity, itemPrice);
             //item.PendingReceival -= purchaseReceivalDetail.Quantity;
             //item.Quantity += purchaseReceivalDetail.Quantity;
             _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
         }
         PurchaseOrderDetail purchaseOrderDetail = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
         _purchaseOrderDetailService.SetReceivalComplete(purchaseOrderDetail, purchaseReceivalDetail.Quantity);
     }
     return(purchaseReceivalDetail);
 }
示例#4
0
 public PurchaseReceivalDetail UnconfirmObject(PurchaseReceivalDetail purchaseReceivalDetail, IPurchaseReceivalService _purchaseReceivalService,
                                               IPurchaseOrderService _purchaseOrderService, IPurchaseOrderDetailService _purchaseOrderDetailService,
                                               IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IStockMutationService _stockMutationService,
                                               IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService)
 {
     if (_validator.ValidUnconfirmObject(purchaseReceivalDetail, _purchaseInvoiceDetailService, _itemService))
     {
         purchaseReceivalDetail = _repository.UnconfirmObject(purchaseReceivalDetail);
         PurchaseReceival      purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseReceivalDetail.PurchaseReceivalId);
         WarehouseItem         warehouseItem    = _warehouseItemService.FindOrCreateObject(purchaseReceival.WarehouseId, purchaseReceivalDetail.ItemId);
         Item                  item             = _itemService.GetObjectById(purchaseReceivalDetail.ItemId);
         IList <StockMutation> stockMutations   = _stockMutationService.SoftDeleteStockMutationForPurchaseReceival(purchaseReceivalDetail, warehouseItem);
         foreach (var stockMutation in stockMutations)
         {
             //decimal itemPrice = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId).Price;
             //item.AvgCost = _itemService.CalculateAvgCost(item, purchaseReceivalDetail.Quantity * (-1), itemPrice);
             //item.PendingReceival += purchaseReceivalDetail.Quantity;
             //item.Quantity -= purchaseReceivalDetail.Quantity;
             _stockMutationService.ReverseStockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
         }
         PurchaseOrderDetail purchaseOrderDetail = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
         _purchaseOrderDetailService.UnsetReceivalComplete(purchaseOrderDetail, purchaseReceivalDetail.Quantity, _purchaseOrderService);
     }
     return(purchaseReceivalDetail);
 }
        public PurchaseReceivalDetail VPurchaseOrderDetailHasBeenConfirmed(PurchaseReceivalDetail purchaseReceivalDetail, IPurchaseOrderDetailService _purchaseOrderDetailService)
        {
            PurchaseOrderDetail purchaseOrderDetail = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);

            if (!purchaseOrderDetail.IsConfirmed)
            {
                purchaseReceivalDetail.Errors.Add("Generic", "Purchase Order Detail belum dikonfirmasi");
            }
            return(purchaseReceivalDetail);
        }
        public PurchaseReceivalDetail VHasPurchaseOrderDetail(PurchaseReceivalDetail purchaseReceivalDetail, IPurchaseOrderDetailService _purchaseOrderDetailService)
        {
            PurchaseOrderDetail purchaseOrderDetail = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);

            if (purchaseOrderDetail == null)
            {
                purchaseReceivalDetail.Errors.Add("PurchaseOrderDetailId", "Tidak terasosiasi dengan purchase order detail");
            }
            return(purchaseReceivalDetail);
        }
        public PurchaseReceivalDetail VPurchaseReceivalAndPurchaseOrderDetailHaveTheSamePurchaseOrder(PurchaseReceivalDetail purchaseReceivalDetail,
                                                                                                      IPurchaseReceivalService _purchaseReceivalService, IPurchaseOrderDetailService _purchaseOrderDetailService)
        {
            PurchaseOrderDetail purchaseOrderDetail = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
            PurchaseReceival    purchaseReceival    = _purchaseReceivalService.GetObjectById(purchaseReceivalDetail.PurchaseReceivalId);

            if (purchaseOrderDetail.PurchaseOrderId != purchaseReceival.PurchaseOrderId)
            {
                purchaseReceivalDetail.Errors.Add("Generic", "Purchase receival dan purchase order detail memiliki purchase order yang berbeda");
            }
            return(purchaseReceivalDetail);
        }
示例#8
0
 public PurchaseInvoiceDetail UpdateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                           IPurchaseOrderDetailService _purchaseOrderDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     if (_validator.ValidUpdateObject(purchaseInvoiceDetail, _purchaseInvoiceService, this, _purchaseReceivalDetailService))
     {
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         PurchaseOrderDetail    purchaseOrderDetail    = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
         purchaseInvoiceDetail.Amount = purchaseInvoiceDetail.Quantity * purchaseOrderDetail.Price;
         _repository.UpdateObject(purchaseInvoiceDetail);
         PurchaseInvoice purchaseInvoice = _purchaseInvoiceService.GetObjectById(purchaseInvoiceDetail.PurchaseInvoiceId);
         _purchaseInvoiceService.CalculateAmountPayable(purchaseInvoice, this);
     }
     return(purchaseInvoiceDetail);
 }
示例#9
0
 public PurchaseInvoiceDetail CreateObject(PurchaseInvoiceDetail purchaseInvoiceDetail, IPurchaseInvoiceService _purchaseInvoiceService,
                                           IPurchaseOrderDetailService _purchaseOrderDetailService, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     purchaseInvoiceDetail.Errors = new Dictionary <String, String>();
     if (_validator.ValidCreateObject(purchaseInvoiceDetail, _purchaseInvoiceService, this, _purchaseReceivalDetailService))
     {
         PurchaseReceivalDetail purchaseReceivalDetail = _purchaseReceivalDetailService.GetObjectById(purchaseInvoiceDetail.PurchaseReceivalDetailId);
         PurchaseOrderDetail    purchaseOrderDetail    = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
         purchaseInvoiceDetail.Amount = purchaseInvoiceDetail.Quantity * purchaseOrderDetail.Price;
         purchaseInvoiceDetail        = _repository.CreateObject(purchaseInvoiceDetail);
         PurchaseInvoice purchaseInvoice = _purchaseInvoiceService.GetObjectById(purchaseInvoiceDetail.PurchaseInvoiceId);
         _purchaseInvoiceService.CalculateAmountPayable(purchaseInvoice, this);
     }
     return(purchaseInvoiceDetail);
 }
        public PurchaseReceivalDetail VQuantityOfPurchaseReceivalDetailsIsLessThanOrEqualPurchaseOrderDetail(PurchaseReceivalDetail purchaseReceivalDetail,
                                                                                                             IPurchaseReceivalDetailService _purchaseReceivalDetailService, IPurchaseOrderDetailService _purchaseOrderDetailService)
        {
            PurchaseOrderDetail            purchaseOrderDetail = _purchaseOrderDetailService.GetObjectById(purchaseReceivalDetail.PurchaseOrderDetailId);
            IList <PurchaseReceivalDetail> details             = _purchaseReceivalDetailService.GetObjectsByPurchaseOrderDetailId(purchaseReceivalDetail.PurchaseOrderDetailId);

            int totalReceivalQuantity = 0;

            foreach (var detail in details)
            {
                totalReceivalQuantity += detail.Quantity;
            }
            if (totalReceivalQuantity > purchaseOrderDetail.Quantity)
            {
                int maxquantity = totalReceivalQuantity - purchaseReceivalDetail.Quantity;
                purchaseReceivalDetail.Errors.Add("Generic", "Hanya boleh maksimum " + maxquantity);
            }
            return(purchaseReceivalDetail);
        }