public CustomPurchaseInvoiceDetail UnconfirmObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, IWarehouseItemService _warehouseItemService,
                                                           IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IPriceMutationService _priceMutationService)
        {
            if (_validator.ValidUnconfirmObject(customPurchaseInvoiceDetail))
            {
                Item item = _itemService.GetObjectById(customPurchaseInvoiceDetail.ItemId);
                //CustomPurchaseInvoiceDetail hiCustomPurchaseInvoiceDetail = GetAll().Where(x => x.ItemId == item.Id).OrderByDescending(x => x.Price).FirstOrDefault();
                decimal hiPrice  = GetHighestPrice(/*customPurchaseInvoiceDetail.CustomPurchaseInvoiceId,*/ customPurchaseInvoiceDetail.ItemId);
                decimal newPrice = hiPrice * (100 + item.Margin) / 100;
                if (newPrice > item.SellingPrice)
                {
                    item.SellingPrice = newPrice;
                    PriceMutation priceMutation = _priceMutationService.CreateObject(item.Id, item.SellingPrice, DateTime.Now);
                    item.PriceMutationId = priceMutation.Id;
                }
                decimal itemPrice = customPurchaseInvoiceDetail.Amount / customPurchaseInvoiceDetail.Quantity;
                item.AvgPrice = _itemService.CalculateAndUpdateAvgPrice(item, customPurchaseInvoiceDetail.Quantity * (-1), itemPrice);

                IList <StockMutation> stockMutations = _stockMutationService.GetObjectsBySourceDocumentDetailForItem(customPurchaseInvoiceDetail.ItemId, Core.Constants.Constant.SourceDocumentDetailType.CustomPurchaseInvoiceDetail, customPurchaseInvoiceDetail.Id);
                foreach (var stockMutation in stockMutations)
                {
                    stockMutation.Errors = new Dictionary <string, string>();
                    _stockMutationService.ReverseStockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
                    _stockMutationService.SoftDeleteObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService);
                }
                customPurchaseInvoiceDetail.CoGS = 0;
                customPurchaseInvoiceDetail      = _repository.UnconfirmObject(customPurchaseInvoiceDetail);
            }
            return(customPurchaseInvoiceDetail);
        }
示例#2
0
 public bool ValidUpdateObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService,
                               ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService)
 {
     customPurchaseInvoiceDetail.Errors.Clear();
     VUpdateObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _customPurchaseInvoiceDetailService, _itemService, _warehouseItemService);
     return(isValid(customPurchaseInvoiceDetail));
 }
示例#3
0
 public CustomPurchaseInvoiceDetail VUpdateObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService,
                                                  ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService)
 {
     //VIsNotConfirmed(customPurchaseInvoiceDetail, _customPurchaseInvoiceService);
     //if (!isValid(customPurchaseInvoiceDetail)) { return customPurchaseInvoiceDetail; }
     return(VCreateObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _customPurchaseInvoiceDetailService, _itemService, _warehouseItemService));
 }
        public dynamic GetInfoDetail(int Id)
        {
            CustomPurchaseInvoiceDetail model = new CustomPurchaseInvoiceDetail();

            try
            {
                model = _customPurchaseInvoiceDetailService.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.Code,
                model.CustomPurchaseInvoiceId,
                CustomPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(model.CustomPurchaseInvoiceId).Code,
                model.ItemId,
                Item = _itemService.GetObjectById(model.ItemId).Name,
                model.Quantity,
                model.Discount,
                model.ListedUnitPrice,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
示例#5
0
 public CustomPurchaseInvoiceDetail VIsValidListedUnitPrice(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail)
 {
     if (customPurchaseInvoiceDetail.ListedUnitPrice < 0)
     {
         customPurchaseInvoiceDetail.Errors.Add("ListedUnitPrice", "Harus lebih besar atau sama dengan 0");
     }
     return(customPurchaseInvoiceDetail);
 }
示例#6
0
        /*public CustomPurchaseInvoiceDetail VIsValidQuantityOrdered(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService)
         * {
         *  CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         *  WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(customPurchaseInvoice.WarehouseId, customPurchaseInvoiceDetail.ItemId);
         *  if (warehouseItem.Quantity - customPurchaseInvoiceDetail.Quantity < 0)
         *  {
         *      customPurchaseInvoiceDetail.Errors.Add("Generic", "Quantity harus lebih kecil atau sama dengan WarehouseItem Quantity");
         *      return customPurchaseInvoiceDetail;
         *  }
         *  return customPurchaseInvoiceDetail;
         * }*/

        public CustomPurchaseInvoiceDetail VIsValidQuantity(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail)
        {
            if (customPurchaseInvoiceDetail.Quantity <= 0)
            {
                customPurchaseInvoiceDetail.Errors.Add("Quantity", "Quantity harus lebih besar dari 0");
            }
            return(customPurchaseInvoiceDetail);
        }
示例#7
0
 public CustomPurchaseInvoiceDetail VIsValidDiscount(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail)
 {
     if (customPurchaseInvoiceDetail.Discount < 0 || customPurchaseInvoiceDetail.Discount > 100)
     {
         customPurchaseInvoiceDetail.Errors.Add("Discount", "Harus antara 0 sampai 100");
     }
     return(customPurchaseInvoiceDetail);
 }
示例#8
0
        public CustomPurchaseInvoiceDetail VHasItem(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, IItemService _itemService)
        {
            Item item = _itemService.GetObjectById(customPurchaseInvoiceDetail.ItemId);

            if (item == null)
            {
                customPurchaseInvoiceDetail.Errors.Add("ItemId", "Tidak valid");
            }
            return(customPurchaseInvoiceDetail);
        }
示例#9
0
        public CustomPurchaseInvoiceDetail VHasCustomPurchaseInvoice(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
        {
            CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);

            if (customPurchaseInvoice == null)
            {
                customPurchaseInvoiceDetail.Errors.Add("CustomPurchaseInvoiceId", "Tidak valid");
            }
            return(customPurchaseInvoiceDetail);
        }
 public CustomPurchaseInvoiceDetail SoftDeleteObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
 {
     if (_validator.ValidDeleteObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService))
     {
         CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         _repository.SoftDeleteObject(customPurchaseInvoiceDetail);
         customPurchaseInvoice.Total = CalculateTotal(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         customPurchaseInvoice.CoGS  = CalculateCoGS(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         _customPurchaseInvoiceService.GetRepository().Update(customPurchaseInvoice);
     }
     return(customPurchaseInvoiceDetail);
 }
示例#11
0
        public string PrintError(CustomPurchaseInvoiceDetail 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);
        }
示例#12
0
        public CustomPurchaseInvoiceDetail VUniqueItem(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IItemService _itemService)
        {
            IList <CustomPurchaseInvoiceDetail> details = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);

            foreach (var detail in details)
            {
                if (detail.ItemId == customPurchaseInvoiceDetail.ItemId && detail.Id != customPurchaseInvoiceDetail.Id)
                {
                    customPurchaseInvoiceDetail.Errors.Add("Generic", "Tidak boleh ada duplikasi item dalam 1 CustomPurchaseInvoice");
                }
            }
            return(customPurchaseInvoiceDetail);
        }
 public CustomPurchaseInvoiceDetail UpdateObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService,
                                                 IItemService _itemService, IWarehouseItemService _warehouseItemService)
 {
     if (_validator.ValidUpdateObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, this, _itemService, _warehouseItemService))
     {
         Item item = _itemService.GetObjectById(customPurchaseInvoiceDetail.ItemId);
         CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         customPurchaseInvoiceDetail.Price  = customPurchaseInvoiceDetail.ListedUnitPrice * (100 - customPurchaseInvoiceDetail.Discount) / 100;
         customPurchaseInvoiceDetail.Amount = customPurchaseInvoiceDetail.Price * customPurchaseInvoiceDetail.Quantity;
         customPurchaseInvoiceDetail.CoGS   = customPurchaseInvoiceDetail.Quantity * _itemService.CalculateAvgPrice(item, customPurchaseInvoiceDetail.Quantity, customPurchaseInvoiceDetail.Price);
         customPurchaseInvoiceDetail        = _repository.UpdateObject(customPurchaseInvoiceDetail);
         customPurchaseInvoice.Total        = CalculateTotal(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         customPurchaseInvoice.CoGS         = CalculateCoGS(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         _customPurchaseInvoiceService.GetRepository().Update(customPurchaseInvoice);
     }
     return(customPurchaseInvoiceDetail);
 }
示例#14
0
        public CustomPurchaseInvoiceDetail VIsParentNotConfirmed(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
        {
            CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);

            if (customPurchaseInvoice != null)
            {
                if (customPurchaseInvoice.IsConfirmed)
                {
                    customPurchaseInvoiceDetail.Errors.Add("Generic", "CustomPurchaseInvoice tidak boleh terkonfirmasi");
                }
            }
            else
            {
                customPurchaseInvoiceDetail.Errors.Add("Generic", "CustomPurchaseInvoice tidak ada");
            }
            return(customPurchaseInvoiceDetail);
        }
        public dynamic UpdateDetail(CustomPurchaseInvoiceDetail model)
        {
            decimal total = 0;

            try
            {
                if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.CustomPurchaseInvoice, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Edit record");

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

                var data = _customPurchaseInvoiceDetailService.GetObjectById(model.Id);
                data.ItemId                  = model.ItemId;
                data.Quantity                = model.Quantity;
                data.Discount                = model.Discount;
                data.ListedUnitPrice         = model.ListedUnitPrice;
                data.CustomPurchaseInvoiceId = model.CustomPurchaseInvoiceId;
                model = _customPurchaseInvoiceDetailService.UpdateObject(data, _customPurchaseInvoiceService, _itemService, _warehouseItemService);
                total = _customPurchaseInvoiceService.GetObjectById(model.CustomPurchaseInvoiceId).Total;
            }
            catch (Exception ex)
            {
                LOG.Error("Update 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,
                Total = total
            }));
        }
        public CustomPurchaseInvoiceDetail ConfirmObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService,
                                                         IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IPriceMutationService _priceMutationService)
        {
            if (_validator.ValidConfirmObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _warehouseItemService))
            {
                CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
                WarehouseItem         warehouseItem         = _warehouseItemService.FindOrCreateObject(customPurchaseInvoice.WarehouseId, customPurchaseInvoiceDetail.ItemId);
                Item          item          = _itemService.GetObjectById(customPurchaseInvoiceDetail.ItemId);
                StockMutation stockMutation = new StockMutation()
                {
                    ItemId                   = customPurchaseInvoiceDetail.ItemId,
                    ItemCase                 = Core.Constants.Constant.ItemCase.Ready,
                    Status                   = Core.Constants.Constant.MutationStatus.Addition,
                    Quantity                 = customPurchaseInvoiceDetail.Quantity,
                    SourceDocumentCode       = customPurchaseInvoice.Code,
                    SourceDocumentId         = customPurchaseInvoice.Id,
                    SourceDocumentType       = Core.Constants.Constant.SourceDocumentType.CustomPurchaseInvoice,
                    SourceDocumentDetailCode = customPurchaseInvoiceDetail.Code,
                    SourceDocumentDetailId   = customPurchaseInvoiceDetail.Id,
                    SourceDocumentDetailType = Core.Constants.Constant.SourceDocumentDetailType.CustomPurchaseInvoiceDetail,
                    WarehouseId              = customPurchaseInvoice.WarehouseId,
                    WarehouseItemId          = warehouseItem.Id
                };

                decimal hiPrice  = GetHighestPrice(/*customPurchaseInvoice.Id,*/ customPurchaseInvoiceDetail.ItemId);
                decimal newPrice = hiPrice * (100 + item.Margin) / 100;
                if (newPrice > item.SellingPrice)
                {
                    item.SellingPrice = newPrice;
                    PriceMutation priceMutation = _priceMutationService.CreateObject(item.Id, item.SellingPrice, DateTime.Now);
                    item.PriceMutationId = priceMutation.Id;
                }
                decimal itemPrice = customPurchaseInvoiceDetail.Amount / customPurchaseInvoiceDetail.Quantity;
                item.AvgPrice = _itemService.CalculateAndUpdateAvgPrice(item, customPurchaseInvoiceDetail.Quantity, itemPrice);

                stockMutation           = _stockMutationService.CreateObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService);
                stockMutation.CreatedAt = (DateTime)customPurchaseInvoice.ConfirmationDate.GetValueOrDefault();
                _stockMutationService.UpdateObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService);
                _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
                customPurchaseInvoiceDetail.CoGS = customPurchaseInvoiceDetail.Quantity * item.AvgPrice;
                customPurchaseInvoiceDetail      = _repository.ConfirmObject(customPurchaseInvoiceDetail);
            }
            return(customPurchaseInvoiceDetail);
        }
        public decimal GetHighestPrice(/*int CustomPurchaseInvoiceId,*/ int ItemId)
        {
            //IList<CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = GetObjectsByCustomPurchaseInvoiceId(CustomPurchaseInvoiceId);

            decimal Price = 0;

            /*foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails)
             * {
             *  if (customPurchaseInvoiceDetail.ItemId == ItemId && Price < customPurchaseInvoiceDetail.Price)
             *  {
             *      Price = customPurchaseInvoiceDetail.Price;
             *  };
             * }*/
            CustomPurchaseInvoiceDetail hiCustomPurchaseInvoiceDetail = GetQueryable().Where(x => x.ItemId == ItemId).OrderByDescending(x => x.Price).FirstOrDefault();

            if (hiCustomPurchaseInvoiceDetail != null)
            {
                Price = hiCustomPurchaseInvoiceDetail.Price;
            }
            return(Price);
        }
        public dynamic InsertDetail(CustomPurchaseInvoiceDetail model)
        {
            decimal total = 0;

            try
            {
                if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.CustomPurchaseInvoice, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Edit record");

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

                model = _customPurchaseInvoiceDetailService.CreateObject(model, _customPurchaseInvoiceService, _itemService, _warehouseItemService);
                total = _customPurchaseInvoiceService.GetObjectById(model.CustomPurchaseInvoiceId).Total;
            }
            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,
                Total = total
            }));
        }
示例#19
0
 public CustomPurchaseInvoiceDetail VCreateObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService,
                                                  ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService)
 {
     VIsParentNotConfirmed(customPurchaseInvoiceDetail, _customPurchaseInvoiceService);
     if (!isValid(customPurchaseInvoiceDetail))
     {
         return(customPurchaseInvoiceDetail);
     }
     VHasItem(customPurchaseInvoiceDetail, _itemService);
     if (!isValid(customPurchaseInvoiceDetail))
     {
         return(customPurchaseInvoiceDetail);
     }
     VUniqueItem(customPurchaseInvoiceDetail, _customPurchaseInvoiceDetailService, _itemService);
     if (!isValid(customPurchaseInvoiceDetail))
     {
         return(customPurchaseInvoiceDetail);
     }
     VHasCustomPurchaseInvoice(customPurchaseInvoiceDetail, _customPurchaseInvoiceService);
     if (!isValid(customPurchaseInvoiceDetail))
     {
         return(customPurchaseInvoiceDetail);
     }
     VIsValidQuantity(customPurchaseInvoiceDetail);
     if (!isValid(customPurchaseInvoiceDetail))
     {
         return(customPurchaseInvoiceDetail);
     }
     VIsValidListedUnitPrice(customPurchaseInvoiceDetail);
     if (!isValid(customPurchaseInvoiceDetail))
     {
         return(customPurchaseInvoiceDetail);
     }
     VIsValidDiscount(customPurchaseInvoiceDetail);
     return(customPurchaseInvoiceDetail);
 }
示例#20
0
 public CustomPurchaseInvoiceDetail VConfirmObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService)
 {
     //VIsValidQuantityOrdered(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _warehouseItemService);
     return(customPurchaseInvoiceDetail);
 }
示例#21
0
 public CustomPurchaseInvoiceDetail VDeleteObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
 {
     VIsParentNotConfirmed(customPurchaseInvoiceDetail, _customPurchaseInvoiceService);
     return(customPurchaseInvoiceDetail);
 }
示例#22
0
 public bool ValidCreateObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService,
                               ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService)
 {
     VCreateObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _customPurchaseInvoiceDetailService, _itemService, _warehouseItemService);
     return(isValid(customPurchaseInvoiceDetail));
 }
示例#23
0
 public bool ValidUnconfirmObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail)
 {
     customPurchaseInvoiceDetail.Errors.Clear();
     VUnconfirmObject(customPurchaseInvoiceDetail);
     return(isValid(customPurchaseInvoiceDetail));
 }
示例#24
0
        public void PopulateCustomPurchaseData()
        {
            TimeSpan salesDate = new TimeSpan(10, 0, 0, 0);
            TimeSpan dueDate   = new TimeSpan(3, 0, 0, 0);

            // Cash with GroupPricing
            cpi1 = new CustomPurchaseInvoice()
            {
                PurchaseDate = DateTime.Today.Subtract(salesDate),
                WarehouseId  = localWarehouse.Id,
                CashBankId   = cashBank.Id,
                DueDate      = DateTime.Today.Subtract(dueDate),
                ContactId    = contact.Id,
            };
            _customPurchaseInvoiceService.CreateObject(cpi1, _warehouseService, _contactService, _cashBankService);

            // Cash with GroupPricing
            cpi2 = new CustomPurchaseInvoice()
            {
                PurchaseDate   = DateTime.Today.Subtract(salesDate),
                WarehouseId    = localWarehouse.Id,
                CashBankId     = cashBank.Id,
                DueDate        = DateTime.Today.Subtract(dueDate),
                IsGroupPricing = true,
                Discount       = 25,
                Tax            = 10,
                ContactId      = contact2.Id,
            };
            _customPurchaseInvoiceService.CreateObject(cpi2, _warehouseService, _contactService, _cashBankService);

            // Bank without GroupPricing
            cpi3 = new CustomPurchaseInvoice()
            {
                PurchaseDate = DateTime.Today.Subtract(salesDate),
                WarehouseId  = localWarehouse.Id,
                CashBankId   = cashBank2.Id,
                DueDate      = DateTime.Today.Subtract(dueDate),
                IsGBCH       = true,
                GBCH_DueDate = DateTime.Today.Subtract(dueDate),
                GBCH_No      = "G0001",
                ContactId    = contact3.Id,
            };
            _customPurchaseInvoiceService.CreateObject(cpi3, _warehouseService, _contactService, _cashBankService);

            cpid1 = new CustomPurchaseInvoiceDetail()
            {
                CustomPurchaseInvoiceId = cpi1.Id,
                Quantity        = 100,
                ItemId          = blanket1.Id,
                Discount        = 10,
                ListedUnitPrice = 10000,
            };
            _customPurchaseInvoiceDetailService.CreateObject(cpid1, _customPurchaseInvoiceService, _itemService, _warehouseItemService);

            cpid2 = new CustomPurchaseInvoiceDetail()
            {
                CustomPurchaseInvoiceId = cpi2.Id,
                Quantity        = 100,
                ItemId          = blanket1.Id,
                ListedUnitPrice = 10000,
            };
            _customPurchaseInvoiceDetailService.CreateObject(cpid2, _customPurchaseInvoiceService, _itemService, _warehouseItemService);

            cpid3 = new CustomPurchaseInvoiceDetail()
            {
                CustomPurchaseInvoiceId = cpi3.Id,
                Quantity        = 100,
                ItemId          = blanket1.Id,
                ListedUnitPrice = 10000,
            };
            _customPurchaseInvoiceDetailService.CreateObject(cpid3, _customPurchaseInvoiceService, _itemService, _warehouseItemService);

            _customPurchaseInvoiceService.ConfirmObject(cpi1, cpi1.PurchaseDate, _customPurchaseInvoiceDetailService, _contactService, _priceMutationService, _payableService, _customPurchaseInvoiceService, _warehouseItemService,
                                                        _warehouseService, _itemService, _barringService, _stockMutationService, _generalLedgerJournalService, _accountService, _closingService);
            _customPurchaseInvoiceService.ConfirmObject(cpi2, cpi2.PurchaseDate, _customPurchaseInvoiceDetailService, _contactService, _priceMutationService, _payableService, _customPurchaseInvoiceService, _warehouseItemService,
                                                        _warehouseService, _itemService, _barringService, _stockMutationService, _generalLedgerJournalService, _accountService, _closingService);
            _customPurchaseInvoiceService.ConfirmObject(cpi3, cpi3.PurchaseDate, _customPurchaseInvoiceDetailService, _contactService, _priceMutationService, _payableService, _customPurchaseInvoiceService, _warehouseItemService,
                                                        _warehouseService, _itemService, _barringService, _stockMutationService, _generalLedgerJournalService, _accountService, _closingService);
            _customPurchaseInvoiceService.PaidObject(cpi1, 200000, _cashBankService, _payableService, _paymentVoucherService, _paymentVoucherDetailService, _contactService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService);
            _customPurchaseInvoiceService.PaidObject(cpi2, cpi2.Total, _cashBankService, _payableService, _paymentVoucherService, _paymentVoucherDetailService, _contactService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService);
            _customPurchaseInvoiceService.PaidObject(cpi3, cpi3.Total, _cashBankService, _payableService, _paymentVoucherService, _paymentVoucherDetailService, _contactService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService);
        }
示例#25
0
 public bool ValidDeleteObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
 {
     customPurchaseInvoiceDetail.Errors.Clear();
     VDeleteObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService);
     return(isValid(customPurchaseInvoiceDetail));
 }
示例#26
0
        public bool isValid(CustomPurchaseInvoiceDetail obj)
        {
            bool isValid = !obj.Errors.Any();

            return(isValid);
        }
示例#27
0
 public CustomPurchaseInvoiceDetail VUnconfirmObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail)
 {
     return(customPurchaseInvoiceDetail);
 }