public bool ValidUpdateObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { retailPurchaseInvoiceDetail.Errors.Clear(); VUpdateObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _retailPurchaseInvoiceDetailService, _itemService, _warehouseItemService); return(isValid(retailPurchaseInvoiceDetail)); }
public RetailPurchaseInvoiceDetail VCreateObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { VIsParentNotConfirmed(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService); if (!isValid(retailPurchaseInvoiceDetail)) { return(retailPurchaseInvoiceDetail); } VHasRetailPurchaseInvoice(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService); if (!isValid(retailPurchaseInvoiceDetail)) { return(retailPurchaseInvoiceDetail); } VIsValidQuantity(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _warehouseItemService); if (!isValid(retailPurchaseInvoiceDetail)) { return(retailPurchaseInvoiceDetail); } VHasItem(retailPurchaseInvoiceDetail, _itemService); if (!isValid(retailPurchaseInvoiceDetail)) { return(retailPurchaseInvoiceDetail); } VUniqueItem(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceDetailService, _itemService); return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VHasRetailPurchaseInvoice(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService) { RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); if (retailPurchaseInvoice == null) { retailPurchaseInvoiceDetail.Errors.Add("RetailPurchaseInvoiceId", "Tidak valid"); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VHasItem(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IItemService _itemService) { Item item = _itemService.GetObjectById(retailPurchaseInvoiceDetail.ItemId); if (item == null) { retailPurchaseInvoiceDetail.Errors.Add("ItemId", "Tidak valid"); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail SoftDeleteObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService) { if (_validator.ValidDeleteObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService)) { RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); _repository.SoftDeleteObject(retailPurchaseInvoiceDetail); retailPurchaseInvoice.Total = CalculateTotal(retailPurchaseInvoice.Id); _retailPurchaseInvoiceService.GetRepository().Update(retailPurchaseInvoice); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VIsValidQuantityOrdered(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IWarehouseItemService _warehouseItemService) { RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(retailPurchaseInvoice.WarehouseId, retailPurchaseInvoiceDetail.ItemId); if (warehouseItem.Quantity - retailPurchaseInvoiceDetail.Quantity < 0) { retailPurchaseInvoiceDetail.Errors.Add("Generic", "Quantity harus lebih kecil atau sama dengan WarehouseItem Quantity"); return(retailPurchaseInvoiceDetail); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VIsValidQuantity(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IWarehouseItemService _warehouseItemService) { RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(retailPurchaseInvoice.WarehouseId, retailPurchaseInvoiceDetail.ItemId); if (retailPurchaseInvoiceDetail.Quantity <= 0 || retailPurchaseInvoiceDetail.Quantity >= warehouseItem.Quantity) { retailPurchaseInvoiceDetail.Errors.Add("Quantity", "Quantity harus lebih besar dari 0 dan lebih kecil dari WarehouseItem Quantity"); return(retailPurchaseInvoiceDetail); } return(retailPurchaseInvoiceDetail); }
public string PrintError(RetailPurchaseInvoiceDetail 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); }
public RetailPurchaseInvoiceDetail VUniqueItem(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IItemService _itemService) { IList <RetailPurchaseInvoiceDetail> details = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); foreach (var detail in details) { if (detail.ItemId == retailPurchaseInvoiceDetail.ItemId && detail.Id != retailPurchaseInvoiceDetail.Id) { retailPurchaseInvoiceDetail.Errors.Add("Generic", "Tidak boleh ada duplikasi item dalam 1 RetailPurchaseInvoice"); } } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VIsParentNotConfirmed(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService) { RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); if (retailPurchaseInvoice != null) { if (retailPurchaseInvoice.IsConfirmed) { retailPurchaseInvoiceDetail.Errors.Add("Generic", "RetailPurchaseInvoice tidak boleh terkonfirmasi"); } } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail UpdateObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IItemService _itemService, IWarehouseItemService _warehouseItemService, IPriceMutationService _priceMutationService) { if (_validator.ValidUpdateObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, this, _itemService, _warehouseItemService)) { Item item = _itemService.GetObjectById(retailPurchaseInvoiceDetail.ItemId); PriceMutation priceMutation = _priceMutationService.GetObjectById(item.PriceMutationId); RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); retailPurchaseInvoiceDetail.PriceMutationId = item.PriceMutationId; retailPurchaseInvoiceDetail.Amount = priceMutation.Amount * retailPurchaseInvoiceDetail.Quantity; retailPurchaseInvoiceDetail = _repository.UpdateObject(retailPurchaseInvoiceDetail); retailPurchaseInvoice.Total = CalculateTotal(retailPurchaseInvoice.Id); _retailPurchaseInvoiceService.GetRepository().Update(retailPurchaseInvoice); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail UnconfirmObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService) { if (_validator.ValidUnconfirmObject(retailPurchaseInvoiceDetail)) { Item item = _itemService.GetObjectById(retailPurchaseInvoiceDetail.ItemId); decimal itemPrice = retailPurchaseInvoiceDetail.Amount / retailPurchaseInvoiceDetail.Quantity; item.AvgPrice = _itemService.CalculateAndUpdateAvgPrice(item, retailPurchaseInvoiceDetail.Quantity * (-1), itemPrice); IList <StockMutation> stockMutations = _stockMutationService.GetObjectsBySourceDocumentDetailForItem(retailPurchaseInvoiceDetail.ItemId, Core.Constants.Constant.SourceDocumentDetailType.RetailPurchaseInvoiceDetail, retailPurchaseInvoiceDetail.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); } retailPurchaseInvoiceDetail.CoGS = 0; retailPurchaseInvoiceDetail = _repository.UnconfirmObject(retailPurchaseInvoiceDetail); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail ConfirmObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService) { if (_validator.ValidConfirmObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _warehouseItemService)) { RetailPurchaseInvoice retailPurchaseInvoice = _retailPurchaseInvoiceService.GetObjectById(retailPurchaseInvoiceDetail.RetailPurchaseInvoiceId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(retailPurchaseInvoice.WarehouseId, retailPurchaseInvoiceDetail.ItemId); Item item = _itemService.GetObjectById(retailPurchaseInvoiceDetail.ItemId); StockMutation stockMutation = new StockMutation() { ItemId = retailPurchaseInvoiceDetail.ItemId, ItemCase = Core.Constants.Constant.ItemCase.Ready, Status = Core.Constants.Constant.MutationStatus.Addition, Quantity = retailPurchaseInvoiceDetail.Quantity, SourceDocumentCode = retailPurchaseInvoice.Code, SourceDocumentId = retailPurchaseInvoice.Id, SourceDocumentType = Core.Constants.Constant.SourceDocumentType.RetailPurchaseInvoice, SourceDocumentDetailCode = retailPurchaseInvoiceDetail.Code, SourceDocumentDetailId = retailPurchaseInvoiceDetail.Id, SourceDocumentDetailType = Core.Constants.Constant.SourceDocumentDetailType.RetailPurchaseInvoiceDetail, WarehouseId = retailPurchaseInvoice.WarehouseId, WarehouseItemId = warehouseItem.Id }; decimal itemPrice = retailPurchaseInvoiceDetail.Amount / retailPurchaseInvoiceDetail.Quantity; item.AvgPrice = _itemService.CalculateAndUpdateAvgPrice(item, retailPurchaseInvoiceDetail.Quantity, itemPrice); stockMutation = _stockMutationService.CreateObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService); stockMutation.CreatedAt = (DateTime)retailPurchaseInvoice.ConfirmationDate.GetValueOrDefault(); _stockMutationService.UpdateObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService); _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService); retailPurchaseInvoiceDetail.CoGS = retailPurchaseInvoiceDetail.Quantity * item.AvgPrice; retailPurchaseInvoiceDetail = _repository.ConfirmObject(retailPurchaseInvoiceDetail); } return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VConfirmObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IWarehouseItemService _warehouseItemService) { VIsValidQuantityOrdered(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _warehouseItemService); return(retailPurchaseInvoiceDetail); }
public RetailPurchaseInvoiceDetail VUpdateObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { return(VCreateObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _retailPurchaseInvoiceDetailService, _itemService, _warehouseItemService)); }
public RetailPurchaseInvoiceDetail VDeleteObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService) { VIsParentNotConfirmed(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService); return(retailPurchaseInvoiceDetail); }
public bool ValidCreateObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { VCreateObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _retailPurchaseInvoiceDetailService, _itemService, _warehouseItemService); return(isValid(retailPurchaseInvoiceDetail)); }
public bool ValidUnconfirmObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail) { retailPurchaseInvoiceDetail.Errors.Clear(); VUnconfirmObject(retailPurchaseInvoiceDetail); return(isValid(retailPurchaseInvoiceDetail)); }
public RetailPurchaseInvoiceDetail VUnconfirmObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail) { return(retailPurchaseInvoiceDetail); }
public bool isValid(RetailPurchaseInvoiceDetail obj) { bool isValid = !obj.Errors.Any(); return(isValid); }
public bool ValidDeleteObject(RetailPurchaseInvoiceDetail retailPurchaseInvoiceDetail, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService) { retailPurchaseInvoiceDetail.Errors.Clear(); VDeleteObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService); return(isValid(retailPurchaseInvoiceDetail)); }
public void PopulateRetailPurchaseData() { TimeSpan salesDate = new TimeSpan(10, 0, 0, 0); TimeSpan dueDate = new TimeSpan(3, 0, 0, 0); // Cash with GroupPricing rpi1 = new RetailPurchaseInvoice() { PurchaseDate = DateTime.Today.Subtract(salesDate), WarehouseId = localWarehouse.Id, CashBankId = cashBank.Id, ContactId = contact.Id, DueDate = DateTime.Today.Subtract(dueDate) }; _retailPurchaseInvoiceService.CreateObject(rpi1, _warehouseService); // Cash with GroupPricing rpi2 = new RetailPurchaseInvoice() { PurchaseDate = DateTime.Today.Subtract(salesDate), WarehouseId = localWarehouse.Id, CashBankId = cashBank.Id, ContactId = contact.Id, DueDate = DateTime.Today.Subtract(dueDate), IsGroupPricing = true, Discount = 25, Tax = 10, }; _retailPurchaseInvoiceService.CreateObject(rpi2, _warehouseService); // Bank without GroupPricing rpi3 = new RetailPurchaseInvoice() { PurchaseDate = DateTime.Today.Subtract(salesDate), WarehouseId = localWarehouse.Id, CashBankId = cashBank2.Id, ContactId = contact.Id, DueDate = DateTime.Today.Subtract(dueDate), IsGBCH = true, GBCH_DueDate = DateTime.Today.Subtract(dueDate), GBCH_No = "G0001" }; _retailPurchaseInvoiceService.CreateObject(rpi3, _warehouseService); rpid1 = new RetailPurchaseInvoiceDetail() { RetailPurchaseInvoiceId = rpi1.Id, Quantity = 100, ItemId = blanket1.Id, }; _retailPurchaseInvoiceDetailService.CreateObject(rpid1, _retailPurchaseInvoiceService, _itemService, _warehouseItemService, _priceMutationService); rpid2 = new RetailPurchaseInvoiceDetail() { RetailPurchaseInvoiceId = rpi2.Id, Quantity = 100, ItemId = blanket1.Id, }; _retailPurchaseInvoiceDetailService.CreateObject(rpid2, _retailPurchaseInvoiceService, _itemService, _warehouseItemService, _priceMutationService); rpid3 = new RetailPurchaseInvoiceDetail() { RetailPurchaseInvoiceId = rpi3.Id, Quantity = 100, ItemId = blanket1.Id, }; _retailPurchaseInvoiceDetailService.CreateObject(rpid3, _retailPurchaseInvoiceService, _itemService, _warehouseItemService, _priceMutationService); _retailPurchaseInvoiceService.ConfirmObject(rpi1, rpi1.PurchaseDate, contact.Id, _retailPurchaseInvoiceDetailService, _contactService, _priceMutationService, _payableService, _retailPurchaseInvoiceService, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _closingService); _retailPurchaseInvoiceService.ConfirmObject(rpi2, rpi2.PurchaseDate, contact2.Id, _retailPurchaseInvoiceDetailService, _contactService, _priceMutationService, _payableService, _retailPurchaseInvoiceService, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _closingService); _retailPurchaseInvoiceService.ConfirmObject(rpi3, rpi3.PurchaseDate, contact3.Id, _retailPurchaseInvoiceDetailService, _contactService, _priceMutationService, _payableService, _retailPurchaseInvoiceService, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _closingService); _retailPurchaseInvoiceService.PaidObject(rpi1, 200000, _cashBankService, _payableService, _paymentVoucherService, _paymentVoucherDetailService, _contactService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService); _retailPurchaseInvoiceService.PaidObject(rpi2, rpi2.Total, _cashBankService, _payableService, _paymentVoucherService, _paymentVoucherDetailService, _contactService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService); _retailPurchaseInvoiceService.PaidObject(rpi3, rpi3.Total, _cashBankService, _payableService, _paymentVoucherService, _paymentVoucherDetailService, _contactService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService); }