public RetailPurchaseInvoice ConfirmObject(RetailPurchaseInvoice retailPurchaseInvoice, DateTime ConfirmationDate, int ContactId, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IContactService _contactService, IPriceMutationService _priceMutationService, IPayableService _payableService, IRetailPurchaseInvoiceService _retailPurchaseInvoiceService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IClosingService _closingService) { retailPurchaseInvoice.ContactId = ContactId; retailPurchaseInvoice.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(retailPurchaseInvoice, _retailPurchaseInvoiceDetailService, _retailPurchaseInvoiceService, _warehouseItemService, _contactService)) { IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id); retailPurchaseInvoice.Total = 0; retailPurchaseInvoice.CoGS = 0; foreach (var retailPurchaseInvoiceDetail in retailPurchaseInvoiceDetails) { retailPurchaseInvoiceDetail.Errors = new Dictionary <string, string>(); _retailPurchaseInvoiceDetailService.ConfirmObject(retailPurchaseInvoiceDetail, _retailPurchaseInvoiceService, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService); retailPurchaseInvoice.Total += retailPurchaseInvoiceDetail.Amount; retailPurchaseInvoice.CoGS += retailPurchaseInvoiceDetail.CoGS; } // Tax dihitung setelah discount retailPurchaseInvoice.Total = (retailPurchaseInvoice.Total * (100 - retailPurchaseInvoice.Discount) / 100) * (100 - retailPurchaseInvoice.Tax) / 100; Payable payable = _payableService.CreateObject(retailPurchaseInvoice.ContactId, Core.Constants.Constant.PayableSource.RetailPurchaseInvoice, retailPurchaseInvoice.Id, retailPurchaseInvoice.Code, retailPurchaseInvoice.Total, (DateTime)retailPurchaseInvoice.DueDate.GetValueOrDefault()); retailPurchaseInvoice = _repository.ConfirmObject(retailPurchaseInvoice); } else { retailPurchaseInvoice.ConfirmationDate = null; //retailPurchaseInvoice.ContactId = 0; //null; } return(retailPurchaseInvoice); }
public RetailPurchaseInvoice VHasNoRetailPurchaseInvoiceDetails(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService) { IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id); if (retailPurchaseInvoiceDetails.Any()) { retailPurchaseInvoice.Errors.Add("Generic", "Tidak boleh terasosiasi dengan RetailPurchaseInvoiceDetails"); } return(retailPurchaseInvoice); }
public RetailPurchaseInvoice VHasRetailPurchaseInvoiceDetails(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService) { IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id); if (!retailPurchaseInvoiceDetails.Any()) { retailPurchaseInvoice.Errors.Add("Generic", "Tidak ada retail purchase invoice details"); } return(retailPurchaseInvoice); }
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 RetailPurchaseInvoice UnconfirmObject(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService, IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IClosingService _closingService) { if (_validator.ValidUnconfirmObject(retailPurchaseInvoice, _retailPurchaseInvoiceDetailService, _payableService, _paymentVoucherDetailService)) { retailPurchaseInvoice = _repository.UnconfirmObject(retailPurchaseInvoice); IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id); foreach (var retailPurchaseInvoiceDetail in retailPurchaseInvoiceDetails) { retailPurchaseInvoiceDetail.Errors = new Dictionary <string, string>(); _retailPurchaseInvoiceDetailService.UnconfirmObject(retailPurchaseInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService); } Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.RetailPurchaseInvoice, retailPurchaseInvoice.Id); _payableService.SoftDeleteObject(payable); } return(retailPurchaseInvoice); }
public RetailPurchaseInvoice VIsUnconfirmableRetailPurchaseInvoiceDetails(RetailPurchaseInvoice retailPurchaseInvoice, IRetailPurchaseInvoiceDetailService _retailPurchaseInvoiceDetailService) { IList <RetailPurchaseInvoiceDetail> retailPurchaseInvoiceDetails = _retailPurchaseInvoiceDetailService.GetObjectsByRetailPurchaseInvoiceId(retailPurchaseInvoice.Id); if (!retailPurchaseInvoiceDetails.Any()) { retailPurchaseInvoice.Errors.Add("Generic", "RetailPurchaseInvoiceDetails Tidak ada"); } else { IRetailPurchaseInvoiceDetailValidator validator = _retailPurchaseInvoiceDetailService.GetValidator(); foreach (var retailPurchaseInvoiceDetail in retailPurchaseInvoiceDetails) { retailPurchaseInvoiceDetail.Errors = new Dictionary <string, string>(); if (!validator.ValidUnconfirmObject(retailPurchaseInvoiceDetail)) { retailPurchaseInvoice.Errors.Add("Generic", "Harus unconfirmable semua"); return(retailPurchaseInvoice); } } } return(retailPurchaseInvoice); }