public async Task <ActionResult> Create([Bind(Include = "Id,Branches_Id,No,Timestamp,PettyCashRecordsCategories_Id,Amount,Notes,ExpenseCategories_Id")] PettyCashRecordsModels pettyCashRecordsModels) { if (ModelState.IsValid) { string lastHex_string = db.PettyCashRecords.AsNoTracking().Max(x => x.No); int lastHex_int = int.Parse( string.IsNullOrEmpty(lastHex_string) ? 0.ToString("X5") : lastHex_string, System.Globalization.NumberStyles.HexNumber); pettyCashRecordsModels.Id = Guid.NewGuid(); pettyCashRecordsModels.No = (lastHex_int + 1).ToString("X5"); pettyCashRecordsModels.Timestamp = DateTime.UtcNow; pettyCashRecordsModels.IsChecked = false; pettyCashRecordsModels.UserAccounts_Id = db.User.Where(x => x.UserName == User.Identity.Name).FirstOrDefault().Id; db.PettyCashRecords.Add(pettyCashRecordsModels); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.listBranch = new SelectList(db.Branches.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name"); ViewBag.categories = db.PettyCashRecordsCategories.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(); var selected = db.PettyCashRecordsCategories.Where(x => x.Active == true && x.Default_row == true).FirstOrDefault(); ViewBag.categorySelectedId = (selected != null) ? selected.Id.ToString() : ""; ViewBag.listCategory = new SelectList(db.ExpenseCategories.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name"); return(View(pettyCashRecordsModels)); }
public async Task <JsonResult> CancelApproved(Guid pettycash_id) { string status = "OK"; PettyCashRecordsModels pettyCashRecordsModels = await db.PettyCashRecords.Where(x => x.Id == pettycash_id).FirstOrDefaultAsync(); pettyCashRecordsModels.IsChecked = false; db.Entry(pettyCashRecordsModels).State = EntityState.Modified; await db.SaveChangesAsync(); return(Json(new { status }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> SaveExpense(Guid id, string expense_id) { string status = "OK"; PettyCashRecordsModels pettyCashRecordsModels = await db.PettyCashRecords.Where(x => x.Id == id).FirstOrDefaultAsync(); if (string.IsNullOrEmpty(expense_id)) { pettyCashRecordsModels.ExpenseCategories_Id = null; } else { pettyCashRecordsModels.ExpenseCategories_Id = new Guid(expense_id); } db.Entry(pettyCashRecordsModels).State = EntityState.Modified; await db.SaveChangesAsync(); return(Json(new { status }, JsonRequestBehavior.AllowGet)); }
public JsonResult SavePayments(Guid branch_id, int cash_amount, int consignment_amount, Guid?consignment_id, int bank_amount, string bank_name, string owner_name, string bank_number, string reff_no, string notes, string bank_type, string invoices_id) { string lastHex_string = db.Payments.AsNoTracking().Max(x => x.No); int lastHex_int = int.Parse( string.IsNullOrEmpty(lastHex_string) ? 0.ToString("X5") : lastHex_string, System.Globalization.NumberStyles.HexNumber); PaymentsModels paymentsModels = new PaymentsModels { Id = Guid.NewGuid(), No = (lastHex_int + 1).ToString("X5"), Timestamp = DateTime.UtcNow, CashAmount = cash_amount, DebitAmount = bank_amount, DebitBank = (bank_amount == 0) ? "" : bank_name, DebitOwnerName = (bank_amount == 0) ? "" : owner_name, DebitNumber = (bank_amount == 0) ? "" : bank_number, DebitRefNo = (bank_amount == 0) ? "" : reff_no, Consignments_Id = (consignment_amount == 0) ? null : consignment_id, ConsignmentAmount = consignment_amount, Notes = notes, Cancelled = false, Confirmed = false, IsTransfer = (bank_type == "Transfer") ? true : false }; string status; Guid payment_id; DateTime dateStart = DateTime.UtcNow.AddSeconds(-10); //range time = 10 seconds DateTime dateEnd = DateTime.UtcNow; var paymentCheck = db.Payments.Where(x => x.Timestamp >= dateStart && x.Timestamp <= dateEnd && x.CashAmount == paymentsModels.CashAmount && x.DebitAmount == paymentsModels.DebitAmount && x.DebitBank == paymentsModels.DebitBank && x.DebitOwnerName == paymentsModels.DebitOwnerName && x.DebitNumber == paymentsModels.DebitNumber && x.DebitRefNo == paymentsModels.DebitRefNo && x.Consignments_Id == paymentsModels.Consignments_Id && x.ConsignmentAmount == paymentsModels.ConsignmentAmount && x.Notes == paymentsModels.Notes && x.Cancelled == paymentsModels.Cancelled && x.Confirmed == paymentsModels.Confirmed && x.IsTransfer == paymentsModels.IsTransfer ).FirstOrDefault(); if (paymentCheck != null) { status = "300"; payment_id = paymentCheck.Id; } //duplicate else { status = "200"; payment_id = paymentsModels.Id; db.Payments.Add(paymentsModels); int total_paid = cash_amount + bank_amount + consignment_amount; string[] ids = invoices_id.Split(','); for (int i = ids.Length - 1; i >= 0; i--) //foreach (string id in ids) { if (total_paid > 0) { string id_saleinvoice = ids[i]; SaleInvoicesModels saleInvoicesModels = db.SaleInvoices.Where(x => x.Id.ToString() == id_saleinvoice).FirstOrDefault(); int due_inv = saleInvoicesModels.Due; if (total_paid >= due_inv) { saleInvoicesModels.Due = 0; total_paid -= due_inv; } else { saleInvoicesModels.Due -= total_paid; total_paid = 0; } db.Entry(saleInvoicesModels).State = EntityState.Modified; PaymentItemsModels paymentItemsModels = new PaymentItemsModels { Id = Guid.NewGuid(), Payments_Id = paymentsModels.Id, ReferenceId = saleInvoicesModels.Id, Amount = (due_inv > saleInvoicesModels.Due) ? due_inv - saleInvoicesModels.Due : saleInvoicesModels.Due - due_inv, DueBefore = due_inv, DueAfter = saleInvoicesModels.Due }; db.PaymentItems.Add(paymentItemsModels); } } if (cash_amount > 0) { string lastHex_string_pcr = db.PettyCashRecords.AsNoTracking().Max(x => x.No); int lastHex_int_pcr = int.Parse( string.IsNullOrEmpty(lastHex_string_pcr) ? 0.ToString("X5") : lastHex_string_pcr, System.Globalization.NumberStyles.HexNumber); PettyCashRecordsModels pettyCashRecordsModels = new PettyCashRecordsModels { Id = Guid.NewGuid(), Branches_Id = branch_id, RefId = paymentsModels.Id, No = (lastHex_int_pcr + 1).ToString("X5"), Timestamp = DateTime.UtcNow, PettyCashRecordsCategories_Id = db.Settings.Where(x => x.Id == SettingsValue.GUID_AutoEntryForCashPayments).FirstOrDefault().Value_Guid.Value, //db.PettyCashRecordsCategories.Where(x => x.Name == "Penjualan Tunai").FirstOrDefault().Id, Notes = "Cash Payment [" + paymentsModels.No + "]", Amount = cash_amount, IsChecked = false, UserAccounts_Id = db.User.Where(x => x.UserName == User.Identity.Name).FirstOrDefault().Id }; db.PettyCashRecords.Add(pettyCashRecordsModels); } db.SaveChanges(); } return(Json(new { status, payment_id }, JsonRequestBehavior.AllowGet)); }