public CustomPurchaseInvoice ConfirmObject(CustomPurchaseInvoice customPurchaseInvoice, DateTime ConfirmationDate, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IContactService _contactService, IPriceMutationService _priceMutationService, IPayableService _payableService, ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService) { customPurchaseInvoice.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _customPurchaseInvoiceService, _warehouseItemService, _contactService, _closingService)) { IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id); customPurchaseInvoice.Total = 0; customPurchaseInvoice.CoGS = 0; foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails) { customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>(); _customPurchaseInvoiceDetailService.ConfirmObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _priceMutationService); customPurchaseInvoice.Total += customPurchaseInvoiceDetail.Amount; customPurchaseInvoice.CoGS += customPurchaseInvoiceDetail.CoGS; } // Tax dihitung setelah discount //customPurchaseInvoice.Total = (customPurchaseInvoice.Total * (100 - customPurchaseInvoice.Discount) / 100) * (100 - customPurchaseInvoice.Tax) / 100; customPurchaseInvoice.Total = CalculateTotalAmountAfterDiscountAndTax(customPurchaseInvoice); Payable payable = _payableService.CreateObject(customPurchaseInvoice.ContactId, Core.Constants.Constant.PayableSource.CustomPurchaseInvoice, customPurchaseInvoice.Id, customPurchaseInvoice.Code, customPurchaseInvoice.Total, (DateTime)customPurchaseInvoice.DueDate.GetValueOrDefault()); _generalLedgerJournalService.CreateConfirmationJournalForCustomPurchaseInvoice(customPurchaseInvoice, _accountService); customPurchaseInvoice = _repository.ConfirmObject(customPurchaseInvoice); } else { customPurchaseInvoice.ConfirmationDate = null; } return(customPurchaseInvoice); }
public CustomPurchaseInvoice VHasNoCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService) { IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id); if (customPurchaseInvoiceDetails.Any()) { customPurchaseInvoice.Errors.Add("Generic", "Tidak boleh terasosiasi dengan CustomPurchaseInvoiceDetails"); } return(customPurchaseInvoice); }
public CustomPurchaseInvoice VHasCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService) { IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id); if (!customPurchaseInvoiceDetails.Any()) { customPurchaseInvoice.Errors.Add("Generic", "Tidak ada retail purchase invoice details"); } return(customPurchaseInvoice); }
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 CustomPurchaseInvoice UnconfirmObject(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService, IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IPriceMutationService _priceMutationService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService) { if (_validator.ValidUnconfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _payableService, _paymentVoucherDetailService, _closingService)) { IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id); foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails) { customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>(); _customPurchaseInvoiceDetailService.UnconfirmObject(customPurchaseInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService, _priceMutationService); } Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.CustomPurchaseInvoice, customPurchaseInvoice.Id); _payableService.SoftDeleteObject(payable); customPurchaseInvoice.Total = 0; customPurchaseInvoice.CoGS = 0; _generalLedgerJournalService.CreateUnconfirmationJournalForCustomPurchaseInvoice(customPurchaseInvoice, _accountService); customPurchaseInvoice = _repository.UnconfirmObject(customPurchaseInvoice); } return(customPurchaseInvoice); }
public CustomPurchaseInvoice VIsUnconfirmableCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService) { IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id); if (!customPurchaseInvoiceDetails.Any()) { customPurchaseInvoice.Errors.Add("Generic", "CustomPurchaseInvoiceDetails Tidak ada"); } else { ICustomPurchaseInvoiceDetailValidator validator = _customPurchaseInvoiceDetailService.GetValidator(); foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails) { customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>(); if (!validator.ValidUnconfirmObject(customPurchaseInvoiceDetail)) { customPurchaseInvoice.Errors.Add("Generic", "Harus unconfirmable semua"); return(customPurchaseInvoice); } } } return(customPurchaseInvoice); }