コード例 #1
0
        public dynamic Delete(PurchaseReceival model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Delete", Core.Constants.Constant.MenuName.PurchaseReceival, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Delete Record");

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

                var data = _purchaseReceivalService.GetObjectById(model.Id);
                model = _purchaseReceivalService.SoftDeleteObject(data, _purchaseReceivalDetailService);
            }
            catch (Exception ex)
            {
                LOG.Error("Delete Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

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

            return(Json(new
            {
                model.Errors
            }));
        }
コード例 #2
0
        public dynamic UnConfirm(PurchaseReceival model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("UnConfirm", Core.Constants.Constant.MenuName.PurchaseReceival, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to UnConfirm record");

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

                var data = _purchaseReceivalService.GetObjectById(model.Id);
                model = _purchaseReceivalService.UnconfirmObject(data, _purchaseReceivalDetailService, _purchaseInvoiceService, _purchaseInvoiceDetailService, _purchaseOrderService, _purchaseOrderDetailService, _stockMutationService, _itemService, _barringService, _warehouseItemService);
            }
            catch (Exception ex)
            {
                LOG.Error("Unconfirm Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

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

            return(Json(new
            {
                model.Errors
            }));
        }
コード例 #3
0
        public dynamic Insert(PurchaseReceival model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Create", Core.Constants.Constant.MenuName.PurchaseReceival, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Add record");

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

                model = _purchaseReceivalService.CreateObject(model, _purchaseOrderService, _warehouseService);
            }
            catch (Exception ex)
            {
                LOG.Error("Insert Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

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

            return(Json(new
            {
                model.Errors
            }));
        }
コード例 #4
0
        public PurchaseInvoice ConfirmObject(PurchaseInvoice purchaseInvoice, DateTime ConfirmationDate, IPurchaseInvoiceDetailService _purchaseInvoiceDetailService, IPurchaseOrderService _purchaseOrderService,
                                             IPurchaseReceivalService _purchaseReceivalService, IPurchaseReceivalDetailService _purchaseReceivalDetailService, IPayableService _payableService)
        {
            purchaseInvoice.ConfirmationDate = ConfirmationDate;
            if (_validator.ValidConfirmObject(purchaseInvoice, _purchaseInvoiceDetailService, _purchaseReceivalService, _purchaseReceivalDetailService))
            {
                // confirm details
                // add all amount into amountpayable
                IList <PurchaseInvoiceDetail> details = _purchaseInvoiceDetailService.GetObjectsByPurchaseInvoiceId(purchaseInvoice.Id);
                foreach (var detail in details)
                {
                    detail.Errors = new Dictionary <string, string>();
                    _purchaseInvoiceDetailService.ConfirmObject(detail, ConfirmationDate, _purchaseReceivalDetailService);
                }
                purchaseInvoice = CalculateAmountPayable(purchaseInvoice, _purchaseInvoiceDetailService);

                // confirm object
                // create payable
                purchaseInvoice = _repository.ConfirmObject(purchaseInvoice);
                PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseInvoice.PurchaseReceivalId);
                _purchaseReceivalService.CheckAndSetInvoiceComplete(purchaseReceival, _purchaseReceivalDetailService);
                PurchaseOrder purchaseOrder = _purchaseOrderService.GetObjectById(purchaseReceival.PurchaseOrderId);
                Payable       payable       = _payableService.CreateObject(purchaseOrder.ContactId, Constant.PayableSource.PurchaseInvoice, purchaseInvoice.Id, purchaseInvoice.AmountPayable, purchaseInvoice.DueDate);
            }
            return(purchaseInvoice);
        }
コード例 #5
0
        public dynamic GetInfo(int Id)
        {
            PurchaseReceival model = new PurchaseReceival();

            try
            {
                model = _purchaseReceivalService.GetObjectById(Id);
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                model.Errors.Add("Generic", "Error : " + ex);
            }

            return(Json(new
            {
                model.Id,
                model.Code,
                model.PurchaseOrderId,
                PurchaseOrder = _purchaseOrderService.GetObjectById(model.PurchaseOrderId).Code,
                model.ReceivalDate,
                model.WarehouseId,
                Warehouse = _warehouseService.GetObjectById(model.WarehouseId).Name,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #6
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);
 }
コード例 #7
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);
 }
コード例 #8
0
 public PurchaseReceival VHasReceivalDate(PurchaseReceival purchaseReceival)
 {
     if (purchaseReceival.ReceivalDate == null)
     {
         purchaseReceival.Errors.Add("ReceivalDate", "Tidak boleh tidak ada");
     }
     return(purchaseReceival);
 }
コード例 #9
0
 public PurchaseReceival VHasBeenConfirmed(PurchaseReceival purchaseReceival)
 {
     if (!purchaseReceival.IsConfirmed)
     {
         purchaseReceival.Errors.Add("Generic", "Belum dikonfirmasi");
     }
     return(purchaseReceival);
 }
コード例 #10
0
 public PurchaseReceival VHasConfirmationDate(PurchaseReceival obj)
 {
     if (obj.ConfirmationDate == null)
     {
         obj.Errors.Add("ConfirmationDate", "Tidak boleh kosong");
     }
     return(obj);
 }
コード例 #11
0
 public PurchaseReceival VHasNotBeenConfirmed(PurchaseReceival purchaseReceival)
 {
     if (purchaseReceival.IsConfirmed)
     {
         purchaseReceival.Errors.Add("Generic", "Tidak boleh sudah dikonfirmasi");
     }
     return(purchaseReceival);
 }
コード例 #12
0
        public PurchaseReceival VHasNoPurchaseInvoice(PurchaseReceival purchaseReceival, IPurchaseInvoiceService _purchaseInvoiceService)
        {
            IList <PurchaseInvoice> purchaseInvoices = _purchaseInvoiceService.GetObjectsByPurchaseReceivalId(purchaseReceival.Id);

            if (purchaseInvoices.Any())
            {
                purchaseReceival.Errors.Add("Generic", "Sudah memiliki purhase invoice");
            }
            return(purchaseReceival);
        }
コード例 #13
0
        public PurchaseReceival VHasPurchaseOrder(PurchaseReceival purchaseReceival, IPurchaseOrderService _purchaseOrderService)
        {
            PurchaseOrder purchaseOrder = _purchaseOrderService.GetObjectById(purchaseReceival.PurchaseOrderId);

            if (purchaseOrder == null)
            {
                purchaseReceival.Errors.Add("PurchaseOrderId", "Tidak terasosiasi dengan purchase order");
            }
            return(purchaseReceival);
        }
コード例 #14
0
 public PurchaseReceival VUnconfirmObject(PurchaseReceival purchaseReceival, IPurchaseInvoiceService _purchaseInvoiceService)
 {
     VHasBeenConfirmed(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasNoPurchaseInvoice(purchaseReceival, _purchaseInvoiceService);
     return(purchaseReceival);
 }
コード例 #15
0
 public PurchaseReceival VDeleteObject(PurchaseReceival purchaseReceival, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasNotBeenConfirmed(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasNoPurchaseReceivalDetail(purchaseReceival, _purchaseReceivalDetailService);
     return(purchaseReceival);
 }
コード例 #16
0
        public PurchaseReceival VHasNoPurchaseReceivalDetail(PurchaseReceival purchaseReceival, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            IList <PurchaseReceivalDetail> details = _purchaseReceivalDetailService.GetObjectsByPurchaseReceivalId(purchaseReceival.Id);

            if (details.Any())
            {
                purchaseReceival.Errors.Add("Generic", "Masih memiliki purchase receival detail");
            }
            return(purchaseReceival);
        }
コード例 #17
0
        public PurchaseReceival VHasWarehouse(PurchaseReceival purchaseReceival, IWarehouseService _warehouseService)
        {
            Warehouse warehouse = _warehouseService.GetObjectById(purchaseReceival.WarehouseId);

            if (warehouse == null)
            {
                purchaseReceival.Errors.Add("WarehouseId", "Tidak terasosiasi dengan warehouse");
            }
            return(purchaseReceival);
        }
コード例 #18
0
        public PurchaseInvoice VHasPurchaseReceival(PurchaseInvoice purchaseInvoice, IPurchaseReceivalService _purchaseReceivalService)
        {
            PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseInvoice.PurchaseReceivalId);

            if (purchaseReceival == null)
            {
                purchaseInvoice.Errors.Add("PurchaseReceivalId", "Tidak terasosiasi dengan Purchase Receival");
            }
            return(purchaseInvoice);
        }
コード例 #19
0
        public PurchaseReceivalDetail VHasPurchaseReceival(PurchaseReceivalDetail purchaseReceivalDetail, IPurchaseReceivalService _purchaseReceivalService)
        {
            PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseReceivalDetail.PurchaseReceivalId);

            if (purchaseReceival == null)
            {
                purchaseReceivalDetail.Errors.Add("PurchaseReceivalId", "Tidak terasosiasi dengan purchase receival");
            }
            return(purchaseReceivalDetail);
        }
コード例 #20
0
        public PurchaseInvoice VPurchaseReceivalHasNotBeenInvoiceCompleted(PurchaseInvoice purchaseInvoice, IPurchaseReceivalService _purchaseReceivalService)
        {
            PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseInvoice.PurchaseReceivalId);

            if (purchaseReceival.IsInvoiceCompleted)
            {
                purchaseInvoice.Errors.Add("Generic", "Tidak boleh memilih Purchase Receival dengan invoice yang sudah terbayar");
            }
            return(purchaseInvoice);
        }
コード例 #21
0
 public PurchaseReceival VUpdateObject(PurchaseReceival purchaseReceival, IPurchaseOrderService _purchaseOrderService, IWarehouseService _warehouseService)
 {
     VCreateObject(purchaseReceival, _purchaseOrderService, _warehouseService);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasNotBeenConfirmed(purchaseReceival);
     return(purchaseReceival);
 }
コード例 #22
0
        public PurchaseReceival VPurchaseOrderHasBeenConfirmed(PurchaseReceival purchaseReceival, IPurchaseOrderService _purchaseOrderService)
        {
            PurchaseOrder purchaseOrder = _purchaseOrderService.GetObjectById(purchaseReceival.PurchaseOrderId);

            if (!purchaseOrder.IsConfirmed)
            {
                purchaseReceival.Errors.Add("Generic", "Purchase order belum di konfirmasi");
            }
            return(purchaseReceival);
        }
コード例 #23
0
        public PurchaseReceival CreateObject(int warehouseId, int purchaseOrderId, DateTime receivalDate, IPurchaseOrderService _purchaseOrderService, IWarehouseService _warehouseService)
        {
            PurchaseReceival purchaseReceival = new PurchaseReceival
            {
                PurchaseOrderId = purchaseOrderId,
                ReceivalDate    = receivalDate,
                WarehouseId     = warehouseId
            };

            return(this.CreateObject(purchaseReceival, _purchaseOrderService, _warehouseService));
        }
コード例 #24
0
        public PurchaseReceivalDetail UndoInvoiceObject(PurchaseReceivalDetail purchaseReceivalDetail, int Quantity, IPurchaseReceivalService _purchaseReceivalService)
        {
            PurchaseReceival purchaseReceival = _purchaseReceivalService.GetObjectById(purchaseReceivalDetail.PurchaseReceivalId);

            _purchaseReceivalService.UnsetInvoiceComplete(purchaseReceival);

            purchaseReceivalDetail.IsAllInvoiced            = false;
            purchaseReceivalDetail.PendingInvoicedQuantity += Quantity;
            _repository.UpdateObject(purchaseReceivalDetail);
            return(purchaseReceivalDetail);
        }
コード例 #25
0
        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);
        }
コード例 #26
0
        public PurchaseReceival CheckAndSetInvoiceComplete(PurchaseReceival purchaseReceival, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
        {
            IList <PurchaseReceivalDetail> details = _purchaseReceivalDetailService.GetObjectsByPurchaseReceivalId(purchaseReceival.Id);

            foreach (var detail in details)
            {
                if (!detail.IsAllInvoiced)
                {
                    return(purchaseReceival);
                }
            }
            return(_repository.SetInvoiceComplete(purchaseReceival));
        }
コード例 #27
0
        public string PrintError(PurchaseReceival obj)
        {
            string erroroutput = "";
            KeyValuePair <string, string> first = obj.Errors.ElementAt(0);

            erroroutput += first.Key + "," + first.Value;
            foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1))
            {
                erroroutput += Environment.NewLine;
                erroroutput += pair.Key + "," + pair.Value;
            }
            return(erroroutput);
        }
コード例 #28
0
 public PurchaseReceival VConfirmObject(PurchaseReceival purchaseReceival, IPurchaseReceivalDetailService _purchaseReceivalDetailService)
 {
     VHasConfirmationDate(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasNotBeenConfirmed(purchaseReceival);
     if (!isValid(purchaseReceival))
     {
         return(purchaseReceival);
     }
     VHasPurchaseReceivalDetails(purchaseReceival, _purchaseReceivalDetailService);
     return(purchaseReceival);
 }
コード例 #29
0
        public dynamic Insert(PurchaseReceival model)
        {
            try
            {
                model = _purchaseReceivalService.CreateObject(model, _purchaseOrderService, _warehouseService);
            }
            catch (Exception ex)
            {
                LOG.Error("Insert Failed", ex);
                model.Errors.Add("Generic", "Error : " + ex);
            }

            return(Json(new
            {
                model.Errors
            }));
        }
コード例 #30
0
        public dynamic UnConfirm(PurchaseReceival model)
        {
            try
            {
                var data = _purchaseReceivalService.GetObjectById(model.Id);
                model = _purchaseReceivalService.UnconfirmObject(data, _purchaseReceivalDetailService, _purchaseInvoiceService, _purchaseInvoiceDetailService, _purchaseOrderService, _purchaseOrderDetailService, _stockMutationService, _itemService, _barringService, _warehouseItemService);
            }
            catch (Exception ex)
            {
                LOG.Error("Unconfirm Failed", ex);
                model.Errors.Add("Generic", "Error : " + ex);
            }

            return(Json(new
            {
                model.Errors
            }));
        }