public bool ValidPaidObject(CashSalesInvoice cashSalesInvoice, ICashBankService _cashBankService, IReceiptVoucherService _receiptVoucherService, ICashSalesReturnService _cashSalesReturnService, IClosingService _closingService) { cashSalesInvoice.Errors.Clear(); VPaidObject(cashSalesInvoice, _cashBankService, _receiptVoucherService, _cashSalesReturnService, _closingService); return(isValid(cashSalesInvoice)); }
public CashSalesInvoiceDetail ConfirmObject(CashSalesInvoiceDetail cashSalesInvoiceDetail, ICashSalesInvoiceService _cashSalesInvoiceService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService) { if (_validator.ValidConfirmObject(cashSalesInvoiceDetail, _cashSalesInvoiceService, _warehouseItemService)) { CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesInvoiceDetail.CashSalesInvoiceId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(cashSalesInvoice.WarehouseId, cashSalesInvoiceDetail.ItemId); Item item = _itemService.GetObjectById(cashSalesInvoiceDetail.ItemId); StockMutation stockMutation = new StockMutation() { ItemId = cashSalesInvoiceDetail.ItemId, ItemCase = Core.Constants.Constant.ItemCase.Ready, Status = Core.Constants.Constant.MutationStatus.Deduction, Quantity = cashSalesInvoiceDetail.Quantity, SourceDocumentCode = cashSalesInvoice.Code, SourceDocumentId = cashSalesInvoice.Id, SourceDocumentType = Core.Constants.Constant.SourceDocumentType.CashSalesInvoice, SourceDocumentDetailCode = cashSalesInvoiceDetail.Code, SourceDocumentDetailId = cashSalesInvoiceDetail.Id, SourceDocumentDetailType = Core.Constants.Constant.SourceDocumentDetailType.CashSalesInvoiceDetail, WarehouseId = cashSalesInvoice.WarehouseId, WarehouseItemId = warehouseItem.Id }; stockMutation = _stockMutationService.CreateObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService); stockMutation.CreatedAt = (DateTime)cashSalesInvoice.ConfirmationDate.GetValueOrDefault(); _stockMutationService.UpdateObject(stockMutation, _warehouseService, _warehouseItemService, _itemService, _barringService); _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService); cashSalesInvoiceDetail.CoGS = cashSalesInvoiceDetail.Quantity * item.AvgPrice; cashSalesInvoiceDetail = _repository.ConfirmObject(cashSalesInvoiceDetail); } return(cashSalesInvoiceDetail); }
public CashSalesInvoice PaidObject(CashSalesInvoice cashSalesInvoice, decimal AmountPaid, decimal Allowance, ICashBankService _cashBankService, IReceivableService _receivableService, IReceiptVoucherService _receiptVoucherService, IReceiptVoucherDetailService _receiptVoucherDetailService, IContactService _contactService, ICashMutationService _cashMutationService, ICashSalesReturnService _cashSalesReturnService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService) { cashSalesInvoice.AmountPaid = AmountPaid; cashSalesInvoice.Allowance = Allowance; if (_validator.ValidPaidObject(cashSalesInvoice, _cashBankService, _receiptVoucherService, _cashSalesReturnService, _closingService)) { CashBank cashBank = _cashBankService.GetObjectById((int)cashSalesInvoice.CashBankId.GetValueOrDefault()); cashSalesInvoice.IsBank = cashBank.IsBank; if (cashSalesInvoice.AmountPaid + cashSalesInvoice.Allowance == cashSalesInvoice.Total) { cashSalesInvoice.IsFullPayment = true; } Receivable receivable = _receivableService.GetObjectBySource(Core.Constants.Constant.ReceivableSource.CashSalesInvoice, cashSalesInvoice.Id); receivable.AllowanceAmount = Allowance; receivable.RemainingAmount = receivable.Amount - receivable.AllowanceAmount; _receivableService.UpdateObject(receivable); ReceiptVoucher receiptVoucher = _receiptVoucherService.CreateObject((int)cashSalesInvoice.CashBankId.GetValueOrDefault(), receivable.ContactId, DateTime.Now, cashSalesInvoice.AmountPaid.GetValueOrDefault() /*receivable.RemainingAmount*/, false, (DateTime)cashSalesInvoice.DueDate.GetValueOrDefault(), cashSalesInvoice.IsBank, _receiptVoucherDetailService, _receivableService, _contactService, _cashBankService); ReceiptVoucherDetail receiptVoucherDetail = _receiptVoucherDetailService.CreateObject(receiptVoucher.Id, receivable.Id, cashSalesInvoice.AmountPaid.GetValueOrDefault(), "Automatic Payment", _receiptVoucherService, _cashBankService, _receivableService); cashSalesInvoice = _repository.PaidObject(cashSalesInvoice); _generalLedgerJournalService.CreatePaidJournalForCashSalesInvoice(cashSalesInvoice, _accountService); _receiptVoucherService.ConfirmObject(receiptVoucher, (DateTime)cashSalesInvoice.ConfirmationDate.GetValueOrDefault(), _receiptVoucherDetailService, _cashBankService, _receivableService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService); } return(cashSalesInvoice); }
public dynamic Insert(CashSalesInvoice model) { try { if (!AuthenticationModel.IsAllowed("Create", Core.Constants.Constant.MenuName.CashSalesInvoice, Core.Constants.Constant.MenuGroupName.Transaction)) { Dictionary <string, string> Errors = new Dictionary <string, string>(); Errors.Add("Generic", "You are Not Allowed to Add record"); return(Json(new { Errors }, JsonRequestBehavior.AllowGet)); } model = _cashSalesInvoiceService.CreateObject(model, _warehouseService, _cashBankService); } 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 })); }
public dynamic Delete(CashSalesInvoice model) { try { if (!AuthenticationModel.IsAllowed("Delete", Core.Constants.Constant.MenuName.CashSalesInvoice, Core.Constants.Constant.MenuGroupName.Transaction)) { Dictionary <string, string> Errors = new Dictionary <string, string>(); Errors.Add("Generic", "You are Not Allowed to Delete Record"); return(Json(new { Errors }, JsonRequestBehavior.AllowGet)); } var data = _cashSalesInvoiceService.GetObjectById(model.Id); model = _cashSalesInvoiceService.SoftDeleteObject(data, _cashSalesInvoiceDetailService); } catch (Exception ex) { LOG.Error("Delete 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 })); }
public bool ValidConfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService, ICashSalesInvoiceService _cashSalesInvoiceService, IWarehouseItemService _warehouseItemService, IContactService _contactService, ICashBankService _cashBankService, IClosingService _closingService) { cashSalesInvoice.Errors.Clear(); VConfirmObject(cashSalesInvoice, _cashSalesInvoiceDetailService, _cashSalesInvoiceService, _warehouseItemService, _contactService, _cashBankService, _closingService); return(isValid(cashSalesInvoice)); }
public CashSalesInvoice VUnconfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService, IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService, IClosingService _closingService) { VIsNotDeleted(cashSalesInvoice); if (!isValid(cashSalesInvoice)) { return(cashSalesInvoice); } VIsConfirmed(cashSalesInvoice); if (!isValid(cashSalesInvoice)) { return(cashSalesInvoice); } VIsNotPaid(cashSalesInvoice); if (!isValid(cashSalesInvoice)) { return(cashSalesInvoice); } VIsUnconfirmableCashSalesInvoiceDetails(cashSalesInvoice, _cashSalesInvoiceDetailService); if (!isValid(cashSalesInvoice)) { return(cashSalesInvoice); } VHasNoReceiptVoucherDetails(cashSalesInvoice, _receivableService, _receiptVoucherDetailService); if (!isValid(cashSalesInvoice)) { return(cashSalesInvoice); } VGeneralLedgerPostingHasNotBeenClosed(cashSalesInvoice, _closingService, 2); return(cashSalesInvoice); }
public CashSalesInvoice UnconfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService, IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService) { if (_validator.ValidUnconfirmObject(cashSalesInvoice, _cashSalesInvoiceDetailService, _receivableService, _receiptVoucherDetailService, _closingService)) { IList <CashSalesInvoiceDetail> cashSalesInvoiceDetails = _cashSalesInvoiceDetailService.GetObjectsByCashSalesInvoiceId(cashSalesInvoice.Id); foreach (var cashSalesInvoiceDetail in cashSalesInvoiceDetails) { cashSalesInvoiceDetail.Errors = new Dictionary <string, string>(); _cashSalesInvoiceDetailService.UnconfirmObject(cashSalesInvoiceDetail, _warehouseItemService, _warehouseService, _itemService, _barringService, _stockMutationService); } Receivable receivable = _receivableService.GetObjectBySource(Core.Constants.Constant.ReceivableSource.CashSalesInvoice, cashSalesInvoice.Id); _receivableService.SoftDeleteObject(receivable); _generalLedgerJournalService.CreateUnconfirmationJournalForCashSalesInvoice(cashSalesInvoice, _accountService); cashSalesInvoice.CoGS = 0; cashSalesInvoice.Total = 0; cashSalesInvoice.Discount = 0; cashSalesInvoice.Tax = 0; cashSalesInvoice = _repository.UnconfirmObject(cashSalesInvoice); } return(cashSalesInvoice); }
public IList <GeneralLedgerJournal> CreateUnpaidJournalForCashSalesInvoice(CashSalesInvoice cashSalesInvoice, IAccountService _accountService) { IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>(); DateTime UnconfirmationDate = DateTime.Now; GeneralLedgerJournal credittotal = new GeneralLedgerJournal() { AccountId = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.AccountReceivable).Id, SourceDocument = Constant.GeneralLedgerSource.CashSalesInvoice, SourceDocumentId = cashSalesInvoice.Id, TransactionDate = UnconfirmationDate, Status = Constant.GeneralLedgerStatus.Credit, Amount = cashSalesInvoice.AmountPaid.GetValueOrDefault() }; credittotal = CreateObject(credittotal, _accountService); GeneralLedgerJournal debitrevenue = new GeneralLedgerJournal() { AccountId = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.Revenue).Id, SourceDocument = Constant.GeneralLedgerSource.CashSalesInvoice, SourceDocumentId = cashSalesInvoice.Id, TransactionDate = UnconfirmationDate, Status = Constant.GeneralLedgerStatus.Debit, Amount = cashSalesInvoice.AmountPaid.GetValueOrDefault() }; debitrevenue = CreateObject(debitrevenue, _accountService); journals.Add(credittotal); journals.Add(debitrevenue); return(journals); }
public CashSalesInvoice VIsValidTax(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.Tax < 0 || cashSalesInvoice.Tax > 100) { cashSalesInvoice.Errors.Add("Tax", "Harus diantara 0 sampai 100"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsValidAllowance(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.Allowance < 0 || cashSalesInvoice.Allowance > cashSalesInvoice.Total) { cashSalesInvoice.Errors.Add("Allowance", "Harus diantara 0 sampai Total"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsNotPaid(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.IsPaid) { cashSalesInvoice.Errors.Add("Generic", "CashSalesInvoice sudah terbayar"); } return(cashSalesInvoice); }
public bool ValidUnconfirmObject(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService, IReceivableService _receivableService, IReceiptVoucherDetailService _receiptVoucherDetailService, IClosingService _closingService) { cashSalesInvoice.Errors.Clear(); VUnconfirmObject(cashSalesInvoice, _cashSalesInvoiceDetailService, _receivableService, _receiptVoucherDetailService, _closingService); return(isValid(cashSalesInvoice)); }
public CashSalesInvoice VIsValidDiscount(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.Discount < 0 || cashSalesInvoice.Discount > 100) { cashSalesInvoice.Errors.Add("Discount", "Harus diantara 0 sampai 100"); } return(cashSalesInvoice); }
public CashSalesInvoice VTotalPaymentIsEqualOrLessThanTotalPayable(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.AmountPaid + cashSalesInvoice.Allowance > cashSalesInvoice.Total) { cashSalesInvoice.Errors.Add("Generic", "Amount Paid + Allowance lebih dari Total Payable"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsValidFullPayment(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.AmountPaid + cashSalesInvoice.Allowance != cashSalesInvoice.Total) { cashSalesInvoice.Errors.Add("Generic", "Amount Paid + Allowance harus dengan Total Payable"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsValidAmountPaid(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.AmountPaid > cashSalesInvoice.Total) { cashSalesInvoice.Errors.Add("AmountPaid", "Harus lebih kecil atau sama dengan Total Payable"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsConfirmed(CashSalesInvoice cashSalesInvoice) { if (!cashSalesInvoice.IsConfirmed) { cashSalesInvoice.Errors.Add("Generic", "CashSalesInvoice tidak terkonfirmasi"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsPaid(CashSalesInvoice cashSalesInvoice) { if (!cashSalesInvoice.IsPaid) { cashSalesInvoice.Errors.Add("Generic", "CashSalesInvoice belum dibayar"); } return(cashSalesInvoice); }
public CashSalesInvoice VHasSalesDate(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.SalesDate == null || cashSalesInvoice.SalesDate.Equals(DateTime.FromBinary(0))) { cashSalesInvoice.Errors.Add("SalesDate", "Tidak ada"); } return(cashSalesInvoice); }
public CashSalesInvoice VIsNotDeleted(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.IsDeleted) { cashSalesInvoice.Errors.Add("Generic", "CashSalesInvoice tidak boleh terhapus"); } return(cashSalesInvoice); }
public CashSalesInvoiceDetail VHasCashSalesInvoice(CashSalesInvoiceDetail cashSalesInvoiceDetail, ICashSalesInvoiceService _cashSalesInvoiceService) { CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesInvoiceDetail.CashSalesInvoiceId); if (cashSalesInvoice == null) { cashSalesInvoiceDetail.Errors.Add("CashSalesInvoiceId", "Tidak valid"); } return(cashSalesInvoiceDetail); }
public CashSalesInvoice VHasCashBank(CashSalesInvoice cashSalesInvoice, ICashBankService _cashBankService) { CashBank cashBank = _cashBankService.GetObjectById((int)cashSalesInvoice.CashBankId.GetValueOrDefault()); if (cashBank == null) { cashSalesInvoice.Errors.Add("CashBankId", "Tidak valid"); } return(cashSalesInvoice); }
public CashSalesReturn VHasCashSalesInvoice(CashSalesReturn cashSalesReturn, ICashSalesInvoiceService _cashSalesInvoiceService) { CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesReturn.CashSalesInvoiceId); if (cashSalesInvoice == null) { cashSalesReturn.Errors.Add("CashSalesInvoiceId", "Tidak valid"); } return(cashSalesReturn); }
public CashSalesInvoice VHasCashSalesInvoiceDetails(CashSalesInvoice cashSalesInvoice, ICashSalesInvoiceDetailService _cashSalesInvoiceDetailService) { IList <CashSalesInvoiceDetail> cashSalesInvoiceDetails = _cashSalesInvoiceDetailService.GetObjectsByCashSalesInvoiceId(cashSalesInvoice.Id); if (!cashSalesInvoiceDetails.Any()) { cashSalesInvoice.Errors.Add("Generic", "CashSalesInvoiceDetils Tidak ada"); } return(cashSalesInvoice); }
public CashSalesInvoice VHasWarehouse(CashSalesInvoice cashSalesInvoice, IWarehouseService _warehouseService) { Warehouse warehouse = _warehouseService.GetObjectById(cashSalesInvoice.WarehouseId); if (warehouse == null) { cashSalesInvoice.Errors.Add("WarehouseId", "Tidak valid"); } return(cashSalesInvoice); }
public CashSalesInvoice VHasNoCashSalesReturns(CashSalesInvoice cashSalesInvoice, ICashSalesReturnService _cashSalesReturnService) { IList <CashSalesReturn> cashSalesReturns = _cashSalesReturnService.GetObjectsByCashSalesInvoiceId(cashSalesInvoice.Id); if (cashSalesReturns.Any()) { cashSalesInvoice.Errors.Add("Generic", "Tidak boleh terasosiasi dengan CashSalesReturns"); } return(cashSalesInvoice); }
public CashSalesInvoice VHasConfirmationDate(CashSalesInvoice cashSalesInvoice) { if (cashSalesInvoice.ConfirmationDate == null || cashSalesInvoice.ConfirmationDate.Equals(DateTime.FromBinary(0))) { cashSalesInvoice.Errors.Add("ConfirmationDate", "Tidak ada"); } //else if (cashSalesInvoice.ConfirmationDate.GetValueOrDefault().Date.AddDays(1) < cashSalesInvoice.SalesDate.Date) //{ // cashSalesInvoice.Errors.Add("ConfirmationDate", "Harus lebih besar atau sama dengan Sales Date"); //} return(cashSalesInvoice); }
public CashSalesInvoiceDetail VIsValidQuantity(CashSalesInvoiceDetail cashSalesInvoiceDetail, ICashSalesInvoiceService _cashSalesInvoiceService, IWarehouseItemService _warehouseItemService) { CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesInvoiceDetail.CashSalesInvoiceId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(cashSalesInvoice.WarehouseId, cashSalesInvoiceDetail.ItemId); if (cashSalesInvoiceDetail.Quantity <= 0 || cashSalesInvoiceDetail.Quantity > warehouseItem.Quantity) { cashSalesInvoiceDetail.Errors.Add("Quantity", "Quantity harus lebih besar dari 0 dan lebih kecil atau sama dengan WarehouseItem Quantity"); return(cashSalesInvoiceDetail); } return(cashSalesInvoiceDetail); }
/*public CashSalesInvoiceDetail VHasQuantityPricing(CashSalesInvoiceDetail cashSalesInvoiceDetail, IItemService _itemService, IQuantityPricingService _quantityPricingService) * { * Item item = _itemService.GetObjectById(cashSalesInvoiceDetail.ItemId); * IList<QuantityPricing> quantityPricings = _quantityPricingService.GetObjectsByItemTypeId(item.ItemTypeId); * if (quantityPricings.Any()) * { * cashSalesInvoiceDetail.Errors.Add("Generic", "Tidak ada QuantityPricing terasosiasi"); * } * return cashSalesInvoiceDetail; * }*/ public CashSalesInvoiceDetail VIsValidQuantityOrdered(CashSalesInvoiceDetail cashSalesInvoiceDetail, ICashSalesInvoiceService _cashSalesInvoiceService, IWarehouseItemService _warehouseItemService) { CashSalesInvoice cashSalesInvoice = _cashSalesInvoiceService.GetObjectById(cashSalesInvoiceDetail.CashSalesInvoiceId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(cashSalesInvoice.WarehouseId, cashSalesInvoiceDetail.ItemId); if (warehouseItem.Quantity - cashSalesInvoiceDetail.Quantity < 0) { cashSalesInvoiceDetail.Errors.Add("Generic", "Quantity harus lebih kecil atau sama dengan WarehouseItem Quantity"); return(cashSalesInvoiceDetail); } return(cashSalesInvoiceDetail); }