public RetailSalesInvoiceDetail SoftDeleteObject(RetailSalesInvoiceDetail retailSalesInvoiceDetail, IRetailSalesInvoiceService _retailSalesInvoiceService) { if (_validator.ValidDeleteObject(retailSalesInvoiceDetail, _retailSalesInvoiceService)) { RetailSalesInvoice retailSalesInvoice = _retailSalesInvoiceService.GetObjectById(retailSalesInvoiceDetail.RetailSalesInvoiceId); _repository.SoftDeleteObject(retailSalesInvoiceDetail); retailSalesInvoice.Total = CalculateTotal(retailSalesInvoice.Id); retailSalesInvoice.Total = CalculateCoGS(retailSalesInvoice.Id); _retailSalesInvoiceService.GetRepository().Update(retailSalesInvoice); } return(retailSalesInvoiceDetail); }
public RetailSalesInvoiceDetail CreateObject(RetailSalesInvoiceDetail retailSalesInvoiceDetail, IRetailSalesInvoiceService _retailSalesInvoiceService, IItemService _itemService, IWarehouseItemService _warehouseItemService, IPriceMutationService _priceMutationService) { retailSalesInvoiceDetail.Errors = new Dictionary <String, String>(); if (_validator.ValidCreateObject(retailSalesInvoiceDetail, _retailSalesInvoiceService, this, _itemService, _warehouseItemService)) { Item item = _itemService.GetObjectById(retailSalesInvoiceDetail.ItemId); RetailSalesInvoice retailSalesInvoice = _retailSalesInvoiceService.GetObjectById(retailSalesInvoiceDetail.RetailSalesInvoiceId); PriceMutation priceMutation = _priceMutationService.GetObjectById(item.PriceMutationId); if (retailSalesInvoiceDetail.IsManualPriceAssignment) { //priceMutation = _priceMutationService.CreateObject(retailSalesInvoiceDetail.ItemId, retailSalesInvoiceDetail.AssignedPrice, DateTime.Now); retailSalesInvoiceDetail.PriceMutationId = priceMutation.Id; retailSalesInvoiceDetail.Amount = (retailSalesInvoiceDetail.AssignedPrice * retailSalesInvoiceDetail.Quantity) * (100 - retailSalesInvoiceDetail.Discount) / 100; //item.PriceMutationId = priceMutation.Id; //_itemService.GetRepository().Update(item); } else { retailSalesInvoiceDetail.PriceMutationId = item.PriceMutationId; retailSalesInvoiceDetail.Amount = (priceMutation.Amount * retailSalesInvoiceDetail.Quantity) * (100 - retailSalesInvoiceDetail.Discount) / 100; } retailSalesInvoiceDetail.CoGS = retailSalesInvoiceDetail.Quantity * item.AvgPrice; retailSalesInvoiceDetail = _repository.CreateObject(retailSalesInvoiceDetail); if (retailSalesInvoiceDetail.IsManualPriceAssignment) { priceMutation.CreatedAt = retailSalesInvoiceDetail.CreatedAt; _priceMutationService.GetRepository().Update(priceMutation); } retailSalesInvoice.Total = CalculateTotal(retailSalesInvoice.Id); retailSalesInvoice.Total = CalculateCoGS(retailSalesInvoice.Id); _retailSalesInvoiceService.GetRepository().Update(retailSalesInvoice); } return(retailSalesInvoiceDetail); }