public IActionResult AddPurchasingRefundOrder(PurchasingRefundOrderModel refundOrder) { //权限 if (!_permissionService.Authorize("RefundPurchasingOrder")) { return(Error("没有此权限!")); } try { var purchasing = new Purchasing(); purchasing.PurchasingNumber = _commonService.GetOrderSerialNumber("RF"); purchasing.OrgionSerialNumber = refundOrder.PurchasingOriginalNumber; purchasing.PurchasingOrderNumber = refundOrder.PurchasingPlanSerialNumber; purchasing.SupplierId = refundOrder.SupplierId; purchasing.WareHouseId = refundOrder.WareHouseId; purchasing.Mark = refundOrder.Mark; purchasing.State = PurchasingState.InitialStatus; _purchasingService.AddPurchasing(purchasing); //日志 #region 新增采购退单 var mark = "新增采购退单:[" + purchasing.PurchasingNumber + "]"; _logService.InsertOrderTableLog("Purchasing", purchasing.Id, "新增采购退单", Convert.ToInt32(purchasing.State), mark); #endregion return(Json(new { isSucc = true, msg = "成功", id = purchasing.Id })); } catch (Exception ex) { return(Json(new { isSucc = false, msg = "失败,原因:" + ex.Message })); } }
public void Reject(PurchasingViewModel purchasing, int userID) { using (var trans = _unitOfWork.BeginTransaction()) { try { List <PurchasingDetail> listPurchasingDetail = _purchasingDetailRepository .GetMany(c => c.PurchasingId == purchasing.Id).ToList(); foreach (var purchasingDetail in listPurchasingDetail) { purchasingDetail.Status = (int)DbConstant.PurchasingStatus.Deleted; purchasingDetail.ModifyUserId = userID; purchasingDetail.ModifyDate = DateTime.Now; _purchasingDetailRepository.Update(purchasingDetail); } Purchasing entity = _purchasingRepository.GetById(purchasing.Id); entity.Status = (int)DbConstant.PurchasingStatus.Deleted; entity.ModifyUserId = userID; entity.ModifyDate = DateTime.Now; _purchasingRepository.Update(entity); _unitOfWork.SaveChanges(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw; } } }
/// <summary> /// 上传采购退单到WMS /// </summary> /// <param name="id"></param> /// <returns></returns> public string UploadPurchasingRefundOrder(int id) { Purchasing purcOrder = _omsAccessor.Get <Purchasing>().Where(r => r.Isvalid && r.Id == id).FirstOrDefault(); if (purcOrder == null) { return((new { isSucc = false, msg = "发生错误,该采购订单信息有误!" }).ToString()); } var post = new PurchasingRefundOrderModelToWMS { Id = purcOrder.Id, PurchasingNumber = purcOrder.PurchasingNumber, PurchasingOrderNumber = purcOrder.PurchasingOrderNumber, OrgionSerialNumber = purcOrder.OrgionSerialNumber, Mark = purcOrder.Mark, SupplierName = _omsAccessor.GetById <Supplier>(purcOrder.SupplierId) == null ? "" : _omsAccessor.GetById <Supplier>(purcOrder.SupplierId).SupplierName, WareHouseCode = _omsAccessor.GetById <WareHouse>(purcOrder.WareHouseId) == null ? "" : _omsAccessor.GetById <WareHouse>(purcOrder.WareHouseId).Code, PurchasingProducts = _omsAccessor.Get <PurchasingProducts>().Where(r => r.Isvalid && r.PurchasingId == purcOrder.Id).Select(p => new PurchasingProductModelToWMS { ProductId = p.ProductId, Quantity = p.Quantity }).ToList(), }; //处理SSL问题 var httpClientHandler = new HttpClientHandler { ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true }; using (var http = new HttpClient(httpClientHandler)) { string jsonStr = post.ToJson(); var content = new StringContent(jsonStr, Encoding.UTF8, "application/json"); var requestUrl = AppConfigurtaionServices.Configuration["WMSApi:domain"] + "/wmsapi/PurchasingOrderSync/UploadPurchasingRefundOrder"; #region JWTBearer授权信息 _workContext.CurrentHttpContext.Request.Cookies.TryGetValue("wms_token", out string token); if (string.IsNullOrEmpty(token)) { token = GetWMSOauthToken().Result; } http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); #endregion var response = http.PostAsync(requestUrl, content).Result; if (response.StatusCode == System.Net.HttpStatusCode.OK) { var result = response.Content.ReadAsStringAsync(); return(result.Result.ToString()); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { _logService.Error("采购退单上传方法失败,原因是API授权失败!请重试。"); return((new { isSucc = false, isOut = false, msg = "采购退单取消上传方法失败,原因是API授权失败!请重试。" }).ToString()); } else { _logService.Error(string.Format("采购退单取消上传方法失败,状态码:{0},RequestMessage:{1}", response.StatusCode, response.RequestMessage)); return((new { isSucc = false, isOut = false, msg = string.Format("采购退单取消上传方法失败,状态码:{0},RequestMessage:{1}", response.StatusCode, response.RequestMessage) }).ToString()); } } }
public bool delete(int id) { try { var Purchasing = context.Purchasings.Find(id); bool quantityCheck = util.checkingQuantitySingleProduct(Purchasing.modelId, Purchasing.Quantity, Purchasing.store_id); if (quantityCheck == false) { return(false); } bool res = util.updateSingleQuantity(Purchasing.modelId, Purchasing.Quantity, Purchasing.store_id, "Subtract"); if (res == false) { return(false); } Purchasing c = new Purchasing() { purchase_id = id }; context.Entry(c).State = Microsoft.EntityFrameworkCore.EntityState.Deleted; context.SaveChanges(); return(true); } catch (Exception e) { return(false); } }
public PurchasingViewModel GetLatestPurchasingInfo(int purchasingID) { Purchasing purchasing = _purchasingRepository .GetById(purchasingID); PurchasingViewModel mappedResult = new PurchasingViewModel(); return(Map(purchasing, mappedResult)); }
public Purchasing AddPurchasing(Purchasing purchasing) { purchasing.CreatedBy = _workContext.CurrentUser.Id; purchasing.CreatedTime = DateTime.Now; _omsAccessor.Insert <Purchasing>(purchasing); _omsAccessor.SaveChanges(); return(purchasing); }
public PurchasingViewModel GetSelectedPurchasingByTransaction(int purchasingID) { Purchasing purchasing = _purchasingRepository .GetById(purchasingID); PurchasingViewModel mappedResult = new PurchasingViewModel(); return(Map(purchasing, mappedResult)); }
public ActionResult DeleteConfirmed(string id) { Purchasing purchasing = db.Purchasings.Find(id); db.Purchasings.Remove(purchasing); db.SaveChanges(); return(RedirectToAction("Index")); }
public void NeutralizePurchasing(ref Purchasing purchasing, Transaction oldTransaction) { purchasing.TotalHasPaid -= oldTransaction.TotalPayment.AsDecimal(); if (purchasing.TotalHasPaid != purchasing.TotalPrice) { purchasing.PaymentStatus = (int)DbConstant.PaymentStatus.NotSettled; } }
/// <summary> /// Get the product info.!-- (Name, description, Price) /// </summary> /// <param name="productID">the product ID</param> public void GetProductDetail(string productID) { string requestId = DateTime.Now.ToString("yyyyMMddhhmmssfff"); ProductDetailsRequest request = new ProductDetailsRequestBuild() .Info(requestId, productID) .Build(); Purchasing.GetProductDetail(request, new ProductDetailImpl()); }
public void GetPurchaseInfo(string productID) { PurchaseInfoRequest request = new PurchaseInfoRequestBuild() .RsaSign(key) .Build(); Purchasing.GetPurchaseInfo(request, new PurchaseImpl()); }
public void InsertPurchasingMethod(PurchasingViewModel purchasing, List <PurchasingDetailViewModel> purchasingDetails, int userID) { DateTime serverTime = DateTime.Now; purchasing.CreateDate = serverTime; purchasing.CreateUserId = userID; purchasing.ModifyUserId = userID; purchasing.ModifyDate = serverTime; purchasing.Status = (int)DbConstant.PurchasingStatus.NotVerified; purchasing.PaymentMethodId = _referenceRepository.GetMany(c => c.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UTANG).FirstOrDefault().Id; purchasing.TotalHasPaid = 0; string code = "PRC" + "-" + serverTime.Month.ToString() + serverTime.Day.ToString() + "-"; //get total purchasing created today List <Purchasing> todayPCR = _purchasingRepository.GetMany(s => s.Code.ToString().Contains(code) && s.CreateDate.Year == serverTime.Year).ToList(); code = code + (todayPCR.Count + 1); purchasing.Code = code; Purchasing entity = new Purchasing(); Map(purchasing, entity); _purchasingRepository.AttachNavigation(entity.CreateUser); _purchasingRepository.AttachNavigation(entity.ModifyUser); _purchasingRepository.AttachNavigation(entity.PaymentMethod); _purchasingRepository.AttachNavigation(entity.Supplier); Purchasing purchasingInserted = _purchasingRepository.Add(entity); _unitOfWork.SaveChanges(); foreach (var itemPurchasingDetail in purchasingDetails) { PurchasingDetail newPurchasingDetail = new PurchasingDetail(); newPurchasingDetail.CreateDate = serverTime; newPurchasingDetail.CreateUserId = userID; newPurchasingDetail.ModifyUserId = userID; newPurchasingDetail.ModifyDate = serverTime; newPurchasingDetail.PurchasingId = purchasingInserted.Id; newPurchasingDetail.SparepartId = itemPurchasingDetail.SparepartId; newPurchasingDetail.Qty = itemPurchasingDetail.Qty; newPurchasingDetail.Price = itemPurchasingDetail.Price; newPurchasingDetail.SerialNumber = itemPurchasingDetail.SerialNumber; newPurchasingDetail.Status = (int)DbConstant.PurchasingStatus.NotVerified; _purchasingDetailRepository.AttachNavigation(newPurchasingDetail.CreateUser); _purchasingDetailRepository.AttachNavigation(newPurchasingDetail.ModifyUser); _purchasingDetailRepository.AttachNavigation(newPurchasingDetail.Purchasing); _purchasingDetailRepository.AttachNavigation(newPurchasingDetail.Sparepart); PurchasingDetail purchasingDetailInserted = _purchasingDetailRepository.Add(newPurchasingDetail); } _unitOfWork.SaveChanges(); Recalculate(purchasingInserted); }
public void BuyProduct(string productID) { ProductPayRequest request = new ProductPayRequestBuild() .Info("Test 2", productID, DateTime.Now.ToString("yyyyMMddhhmmssfff")) .OptServiceCatalog("X6") .RsaSign(key) .Build(); Purchasing.ProductPay(request, new ProductPayImpl()); }
public Purchasing UpdatePurchasingOrder(Purchasing purchasing) { if (_workContext.CurrentUser != null) { purchasing.ModifiedBy = _workContext.CurrentUser.Id; } purchasing.ModifiedTime = DateTime.Now; _omsAccessor.Update <Purchasing>(purchasing); _omsAccessor.SaveChanges(); return(purchasing); }
public ActionResult Edit([Bind(Include = "userId,filmId,userName,filmName,qty,date,purchasingId")] Purchasing purchasing) { if (ModelState.IsValid) { db.Entry(purchasing).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.filmId = new SelectList(db.Films, "id", "name", purchasing.filmId); return(View(purchasing)); }
// GET: Purchasings/Details/5 public ActionResult Details(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Purchasing purchasing = db.Purchasings.Find(id); if (purchasing == null) { return(HttpNotFound()); } return(View(purchasing)); }
// GET: Purchasings/Edit/5 public ActionResult Edit(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Purchasing purchasing = db.Purchasings.Find(id); if (purchasing == null) { return(HttpNotFound()); } ViewBag.filmId = new SelectList(db.Films, "id", "name", purchasing.filmId); return(View(purchasing)); }
public ActionResult Create([Bind(Include = "userId,filmId,userName,filmName,qty,date,purchasingId")] Purchasing purchasing) { if (ModelState.IsValid) { string userId = User.Identity.GetUserId(); purchasing.userId = userId; purchasing.filmName = "new Film"; purchasing.userName = "******"; db.Purchasings.Add(purchasing); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.filmId = new SelectList(db.Films, "id", "name", purchasing.filmId); return(View(purchasing)); }
public IActionResult PurchasingOrderDetail(Purchasing purchasing) { //权限 if (!_permissionService.Authorize("SavePurchasingOrderInfo")) { return(Error("没有此权限!")); } var result = _purchasingService.UpdatePurchasingOrder(purchasing); //日志 #region 保存信息 var mark = "保存信息"; _logService.InsertOrderTableLog("Purchasing", result.Id, "保存信息", Convert.ToInt32(result.State), mark); #endregion return(Success()); }
/// <summary> /// 取消上传采购退单 /// </summary> /// <param name="orderId"></param> /// <returns></returns> public string CancelUploadPurchasingRefundOrder(int orderId) { Purchasing purcOrder = _omsAccessor.Get <Purchasing>().Where(r => r.Isvalid && r.Id == orderId).FirstOrDefault(); if (purcOrder == null) { return((new { isSucc = false, msg = "发生错误,该采购退单信息有误!" }).ToString()); } //处理SSL问题 var httpClientHandler = new HttpClientHandler { ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true }; using (var http = new HttpClient(httpClientHandler)) { var content = new StringContent(purcOrder.PurchasingNumber, Encoding.UTF8, "application/json"); var requestUrl = AppConfigurtaionServices.Configuration["WMSApi:domain"] + "/wmsapi/PurchasingOrderSync/CancelUploadPurchasingRefundOrder"; #region JWTBearer授权信息 _workContext.CurrentHttpContext.Request.Cookies.TryGetValue("wms_token", out string token); if (string.IsNullOrEmpty(token)) { token = GetWMSOauthToken().Result; } http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); #endregion var response = http.PostAsync(requestUrl, content).Result; if (response.StatusCode == System.Net.HttpStatusCode.OK) { var result = response.Content.ReadAsStringAsync(); return(result.Result.ToString()); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { _logService.Error("取消采购退单上传方法失败,原因是API授权失败!请重试。"); return((new { isSucc = false, isOut = false, msg = "取消采购退单取消上传方法失败,原因是API授权失败!请重试。" }).ToString()); } else { _logService.Error(string.Format("取消采购退单取消上传方法失败,状态码:{0},RequestMessage:{1}", response.StatusCode, response.RequestMessage)); return((new { isSucc = false, isOut = false, msg = string.Format("取消采购退单取消上传方法失败,状态码:{0},RequestMessage:{1}", response.StatusCode, response.RequestMessage) }).ToString()); } } }
public void DeleteDebt(TransactionViewModel transaction, int userID) { DateTime serverTime = DateTime.Now; Transaction transactionEntity = _transactionRepository.GetById(transaction.Id); transactionEntity.ModifyDate = serverTime; transactionEntity.ModifyUserId = userID; transactionEntity.Status = (int)DbConstant.DefaultDataStatus.Deleted; Purchasing purchasingEntity = _purchasingRepository.GetById(transaction.PrimaryKeyValue); NeutralizePurchasing(ref purchasingEntity, transactionEntity); _transactionRepository.Update(transactionEntity); _purchasingRepository.Update(purchasingEntity); _unitOfWork.SaveChanges(); }
public async Task <int> addPurchasing(PurchasingViewModel c, IUrlHelper Url) { bool res = false; // var price = context.BrandModel.Select(x => new { x.Price, x.modelId }).FirstOrDefault(x => x.modelId == c.modelId); Purchasing model = new Purchasing() { Date = c.Date, Quantity = c.Quantity, Amount = c.Amount, modelId = c.modelId, vendor_id = c.vendor_id, store_id = c.store_id, takenBy = c.takenBy, }; context.Purchasings.Add(model); context.SaveChanges(); res = util.updateSingleQuantity(c.modelId, c.Quantity, c.store_id, "Add"); if (res == false) { return(0); } string StoreName = util.GetAllStores().FirstOrDefault(x => x.store_id == c.store_id).StoreName; var users = UserManager.Users.Where(x => x.store_id == c.store_id).ToList(); NotificationsViewModel n = new NotificationsViewModel(); n.heading = "Purchasing #" + model.purchase_id; n.Text = "Items Purchased By " + c.takenBy; n.Url = Url.Action("Details", "Purchasing", new { id = model.purchase_id }); n.read = false; n.When = DateTime.Now; await _hubContext.Clients.Groups(StoreName).SendAsync("RecieveNotification", n); foreach (var em in users) { n.UserId = em.Id; await util.AddNotification(n); } context.SaveChanges(); return(model.purchase_id); }
public void Recalculate(Purchasing purchasing) { List <PurchasingDetail> listPurchasingDetail = _purchasingDetailRepository.GetMany(c => c.PurchasingId == purchasing.Id).ToList(); decimal totalPrice = 0; foreach (var itemPD in listPurchasingDetail) { totalPrice += itemPD.Qty * itemPD.Price; } purchasing.TotalPrice = totalPrice; _purchasingRepository.AttachNavigation(purchasing.CreateUser); _purchasingRepository.AttachNavigation(purchasing.ModifyUser); _purchasingRepository.AttachNavigation(purchasing.PaymentMethod); _purchasingRepository.AttachNavigation(purchasing.Supplier); _purchasingRepository.Update(purchasing); _unitOfWork.SaveChanges(); }
private static void AnalyzeExcelData(StreamWriter sw) { // ExcelDataReaderというライブラリを使ってExcelファイルを読む。 Purchasing purchase = new Purchasing(); try { string path = @"C:\develop\Excel"; System.Collections.Generic.IEnumerable <string> files = Directory.EnumerateFiles(path, "*.xlsx"); foreach (string filenames in files) { if (filenames.Contains('~')) { sw.WriteLine($"AnalyzeExcelData(1):<{filenames}> エクセルのテンポラリーファイルです。"); } else { sw.WriteLine($"ExcelDataRead(2):<{filenames}>"); using FileStream stream = File.Open(filenames, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); using IExcelDataReader reader = ExcelReaderFactory.CreateReader(stream); DataSet ds = reader.AsDataSet(); System.Diagnostics.Debug.WriteLine($"DEBUG:AnalyzeExcelData(1): befor SumPurchasing()"); SumPurchasing(purchase, ds, sw); try{ System.Diagnostics.Debug.WriteLine($"DEBUG:AnalyzeExcelData(2): after SumPurchasing()"); }catch (Exception e) { System.Diagnostics.Debug.WriteLine($"DEBUG:AnalyzeExcelData(3):e=<{e}>"); sw.WriteLine($"AnalyzeExcelData(3):ERROR<{e.Message}>"); } } } } catch (Exception e) { System.Diagnostics.Debug.WriteLine($"DEBUG:AnalyzeExcelData(4):e=<{e}>"); sw.WriteLine($"AnalyzeExcelData(4):ERROR<{e.Message}>"); } }
public IActionResult AddPurchasingOrder(Purchasing purchasing) { //权限 if (!_permissionService.Authorize("AddPurchasingOrder")) { return(Error("没有此权限!")); } purchasing.State = PurchasingState.InitialStatus; purchasing.PurchasingNumber = _commonService.GetOrderSerialNumber("JR"); var data = _purchasingService.AddPurchasing(purchasing); //日志 #region 新增采购订单 var mark = "新增采购订单:[" + data.PurchasingNumber + "]"; _logService.InsertOrderTableLog("Purchasing", data.Id, "新增采购订单", Convert.ToInt32(data.State), mark); #endregion return(Success(data)); }
public void DeletePurchaseReturn(int purchaseReturnID, int userID) { using (var trans = _unitOfWork.BeginTransaction()) { try { //delete old purchase return DateTime serverTime = DateTime.Now; Reference transactionReferenceTable = _referenceRepository.GetMany(c => c.Code == DbConstant.REF_TRANSTBL_PURCHASERETURN).FirstOrDefault(); PurchaseReturn purchaseReturn = _purchaseReturnRepository.GetById(purchaseReturnID); purchaseReturn.Status = (int)DbConstant.DefaultDataStatus.Deleted; purchaseReturn.ModifyDate = serverTime; purchaseReturn.ModifyUserId = userID; _purchaseReturnRepository.AttachNavigation(purchaseReturn.CreateUser); _purchaseReturnRepository.AttachNavigation(purchaseReturn.ModifyUser); _purchaseReturnRepository.AttachNavigation(purchaseReturn.Purchasing); _purchaseReturnRepository.Update(purchaseReturn); _unitOfWork.SaveChanges(); List <PurchaseReturnDetail> listDetail = _purchaseReturnDetailRepository.GetMany(x => x.PurchaseReturnId == purchaseReturnID).ToList(); foreach (var item in listDetail) { if (item.Qty > 0) { PurchasingDetail purchasingDetail = _purchasingDetailRepository.GetById(item.PurchasingDetailId); purchasingDetail.QtyRemaining += item.Qty; _purchasingDetailRepository.AttachNavigation(purchasingDetail.CreateUser); _purchasingDetailRepository.AttachNavigation(purchasingDetail.ModifyUser); _purchasingDetailRepository.AttachNavigation(purchasingDetail.Purchasing); _purchasingDetailRepository.AttachNavigation(purchasingDetail.Sparepart); _purchasingDetailRepository.Update(purchasingDetail); SpecialSparepartDetail spDetail = _specialSparepartDetailRepository.GetMany(x => x.PurchasingDetailId == purchasingDetail.Id).FirstOrDefault(); if (spDetail != null) { spDetail.Status = (int)DbConstant.WheelDetailStatus.Ready; _specialSparepartDetailRepository.AttachNavigation(spDetail.CreateUser); _specialSparepartDetailRepository.AttachNavigation(spDetail.ModifyUser); _specialSparepartDetailRepository.AttachNavigation(spDetail.PurchasingDetail); _specialSparepartDetailRepository.AttachNavigation(spDetail.Sparepart); _specialSparepartDetailRepository.AttachNavigation(spDetail.SparepartManualTransaction); _specialSparepartDetailRepository.Update(spDetail); } _unitOfWork.SaveChanges(); } } List <ReturnViewModel> listReturn = listDetail .GroupBy(l => l.PurchasingDetail.Sparepart) .Select(cl => new ReturnViewModel { SparepartId = cl.First().PurchasingDetail.SparepartId, ReturQty = cl.Sum(c => c.Qty), SubTotalFee = cl.Sum(c => c.PurchasingDetail.Price * c.Qty), PricePerItem = cl.First().PurchasingDetail.Price, }).ToList(); foreach (var itemDetail in listDetail) { itemDetail.Status = (int)DbConstant.DefaultDataStatus.Deleted; itemDetail.ModifyDate = serverTime; itemDetail.ModifyUserId = userID; _purchaseReturnDetailRepository.AttachNavigation(itemDetail.CreateUser); _purchaseReturnDetailRepository.AttachNavigation(itemDetail.ModifyUser); _purchaseReturnDetailRepository.AttachNavigation(itemDetail.PurchaseReturn); _purchaseReturnDetailRepository.AttachNavigation(itemDetail.PurchasingDetail); _purchaseReturnDetailRepository.Update(itemDetail); } foreach (var itemReturn in listReturn) { Sparepart sparepart = _sparepartRepository.GetById(itemReturn.SparepartId); sparepart.StockQty += itemReturn.ReturQty; _sparepartRepository.AttachNavigation(sparepart.CreateUser); _sparepartRepository.AttachNavigation(sparepart.ModifyUser); _sparepartRepository.AttachNavigation(sparepart.CategoryReference); _sparepartRepository.AttachNavigation(sparepart.UnitReference); _sparepartRepository.Update(sparepart); SparepartStockCard stockCard = new SparepartStockCard(); stockCard.CreateUserId = userID; stockCard.PurchaseDate = serverTime; stockCard.PrimaryKeyValue = purchaseReturn.Id; stockCard.ReferenceTableId = transactionReferenceTable.Id; stockCard.SparepartId = sparepart.Id; stockCard.Description = "Pembatalan Retur Pembelian"; stockCard.QtyIn = itemReturn.ReturQty; stockCard.QtyInPrice = itemReturn.SubTotalFee.AsDouble(); SparepartStockCard lastStockCard = _sparepartStokCardRepository.RetrieveLastCard(sparepart.Id); double lastStock = 0; double lastStockPrice = 0; if (lastStockCard != null) { lastStock = lastStockCard.QtyLast; lastStockPrice = lastStockCard.QtyLastPrice; } stockCard.QtyFirst = lastStock; stockCard.QtyFirstPrice = lastStockPrice; stockCard.QtyLast = lastStock + stockCard.QtyIn; stockCard.QtyLastPrice = lastStockPrice + stockCard.QtyInPrice; _sparepartStokCardRepository.AttachNavigation(stockCard.CreateUser); _sparepartStokCardRepository.AttachNavigation(stockCard.Sparepart); _sparepartStokCardRepository.AttachNavigation(stockCard.ReferenceTable); stockCard = _sparepartStokCardRepository.Add(stockCard); _unitOfWork.SaveChanges(); SparepartStockCardDetail stockCardDtail = new SparepartStockCardDetail(); stockCardDtail.ParentStockCard = stockCard; stockCardDtail.PricePerItem = Convert.ToDouble(itemReturn.PricePerItem); stockCardDtail.QtyIn = itemReturn.ReturQty; stockCardDtail.QtyInPrice = itemReturn.SubTotalFee.AsDouble(); SparepartStockCardDetail lastStockCardDetail = _sparepartStokCardDetailRepository.RetrieveLastCardDetailByPurchasingId(sparepart.Id, purchaseReturn.PurchasingId); double lastStockDetail = 0; double lastStockDetailPrice = 0; if (lastStockCardDetail.QtyIn != null) { lastStockDetail = lastStockCardDetail.QtyLast; lastStockDetailPrice = lastStockCardDetail.QtyLastPrice; } stockCardDtail.QtyFirst = lastStockDetail; stockCardDtail.QtyFirstPrice = lastStockDetailPrice; stockCardDtail.QtyLast = lastStockDetail + stockCardDtail.QtyIn; stockCardDtail.QtyLastPrice = lastStockDetailPrice + stockCardDtail.QtyInPrice; stockCardDtail.PurchasingId = purchaseReturn.PurchasingId; _sparepartStokCardDetailRepository.AttachNavigation(stockCardDtail.ParentStockCard); _sparepartStokCardDetailRepository.Add(stockCardDtail); _unitOfWork.SaveChanges(); } _unitOfWork.SaveChanges(); Transaction transaction = _transactionRepository.GetMany(x => x.PrimaryKeyValue == purchaseReturnID && x.ReferenceTableId == transactionReferenceTable.Id).FirstOrDefault(); transaction.Status = (int)DbConstant.DefaultDataStatus.Deleted; transaction.ModifyDate = serverTime; transaction.ModifyUserId = userID; _transactionRepository.AttachNavigation(transaction.CreateUser); _transactionRepository.AttachNavigation(transaction.ModifyUser); _transactionRepository.AttachNavigation(transaction.PaymentMethod); _transactionRepository.AttachNavigation(transaction.ReferenceTable); _transactionRepository.Update(transaction); Purchasing purchasing = _purchasingRepository.GetById(purchaseReturn.PurchasingId); purchasing.Status = (int)DbConstant.PurchasingStatus.Active; if (purchasing.TotalPrice != purchasing.TotalHasPaid && (purchasing.TotalPrice - purchasing.TotalHasPaid) >= (decimal)transaction.TotalTransaction) { purchasing.TotalHasPaid -= (decimal)transaction.TotalTransaction; } if (purchasing.TotalPrice == purchasing.TotalHasPaid) { purchasing.PaymentStatus = (int)DbConstant.PaymentStatus.Settled; } else { purchasing.PaymentStatus = (int)DbConstant.PaymentStatus.NotSettled; } _purchasingRepository.AttachNavigation(purchasing.CreateUser); _purchasingRepository.AttachNavigation(purchasing.ModifyUser); _purchasingRepository.AttachNavigation(purchasing.PaymentMethod); _purchasingRepository.AttachNavigation(purchasing.Supplier); _unitOfWork.SaveChanges(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw; } } }
public void Approve(PurchasingViewModel purchasing, int userID) { using (var trans = _unitOfWork.BeginTransaction()) { try { DateTime serverTime = DateTime.Now; Reference transactionReferenceTable = _referenceRepository.GetMany(c => c.Code == DbConstant.REF_TRANSTBL_PURCHASING).FirstOrDefault(); List <PurchasingDetail> listPurchasingDetail = _purchasingDetailRepository .GetMany(c => c.PurchasingId == purchasing.Id).ToList(); foreach (var purchasingDetail in listPurchasingDetail) { Sparepart sparepartDB = _sparepartRepository.GetById(purchasingDetail.SparepartId); for (int i = 1; i <= purchasingDetail.Qty; i++) { if (!string.IsNullOrEmpty(purchasingDetail.SerialNumber)) { SpecialSparepartDetail wd = new SpecialSparepartDetail(); wd.PurchasingDetail = purchasingDetail; wd.SerialNumber = purchasingDetail.SerialNumber; wd.CreateUserId = userID; wd.CreateDate = serverTime; wd.ModifyUserId = userID; wd.ModifyDate = serverTime; wd.SparepartId = sparepartDB.Id; wd.Status = (int)DbConstant.WheelDetailStatus.Ready; _specialSparepartDetailRepository.AttachNavigation(purchasingDetail.CreateUser); _specialSparepartDetailRepository.AttachNavigation(purchasingDetail.ModifyUser); _specialSparepartDetailRepository.AttachNavigation(purchasingDetail); _specialSparepartDetailRepository.AttachNavigation(purchasingDetail.Sparepart);; _specialSparepartDetailRepository.Add(wd); } } purchasingDetail.Status = (int)DbConstant.PurchasingStatus.Active; purchasingDetail.QtyRemaining = purchasingDetail.Qty; _purchasingDetailRepository.AttachNavigation(purchasingDetail.CreateUser); _purchasingDetailRepository.AttachNavigation(purchasingDetail.ModifyUser); _purchasingDetailRepository.AttachNavigation(purchasingDetail.Purchasing); _purchasingDetailRepository.AttachNavigation(purchasingDetail.Sparepart); _purchasingDetailRepository.Update(purchasingDetail); Sparepart sparepart = _sparepartRepository.GetById(purchasingDetail.SparepartId); sparepart.StockQty += purchasingDetail.Qty; _sparepartRepository.AttachNavigation(sparepart.CreateUser); _sparepartRepository.AttachNavigation(sparepart.ModifyUser); _sparepartRepository.AttachNavigation(sparepart.CategoryReference); _sparepartRepository.AttachNavigation(sparepart.UnitReference); _sparepartRepository.Update(sparepart); SparepartStockCard stockCard = new SparepartStockCard(); stockCard.CreateUserId = userID; stockCard.PurchaseDate = serverTime; stockCard.PrimaryKeyValue = purchasing.Id; stockCard.ReferenceTableId = transactionReferenceTable.Id; stockCard.SparepartId = sparepart.Id; stockCard.Description = "Purchasing"; stockCard.QtyIn = purchasingDetail.Qty; stockCard.QtyInPrice = Convert.ToDouble(purchasingDetail.Price * purchasingDetail.Qty); SparepartStockCard lastStockCard = _sparepartStokCardRepository.RetrieveLastCard(sparepart.Id); double lastStock = 0; double lastStockPrice = 0; if (lastStockCard != null) { lastStock = lastStockCard.QtyLast; lastStockPrice = lastStockCard.QtyLastPrice; } stockCard.QtyFirst = lastStock; stockCard.QtyFirstPrice = lastStockPrice; stockCard.QtyLast = lastStock + stockCard.QtyIn; stockCard.QtyLastPrice = lastStockPrice + stockCard.QtyInPrice; _sparepartStokCardRepository.AttachNavigation(stockCard.CreateUser); _sparepartStokCardRepository.AttachNavigation(stockCard.Sparepart); _sparepartStokCardRepository.AttachNavigation(stockCard.ReferenceTable); stockCard = _sparepartStokCardRepository.Add(stockCard); _unitOfWork.SaveChanges(); SparepartStockCardDetail stockCardDtail = new SparepartStockCardDetail(); stockCardDtail.ParentStockCard = stockCard; stockCardDtail.PricePerItem = Convert.ToDouble(purchasingDetail.Price); stockCardDtail.QtyIn = purchasingDetail.Qty; stockCardDtail.QtyInPrice = Convert.ToDouble(purchasingDetail.Price * purchasingDetail.Qty); SparepartStockCardDetail lastStockCardDetail = _sparepartStokCardDetailRepository.RetrieveLastCardDetailByPurchasingId(sparepart.Id, purchasing.Id); double lastStockDetail = 0; double lastStockDetailPrice = 0; if (lastStockCardDetail != null) { lastStockDetail = lastStockCardDetail.QtyLast; lastStockDetailPrice = lastStockCardDetail.QtyLastPrice; } stockCardDtail.QtyFirst = lastStockDetail; stockCardDtail.QtyFirstPrice = lastStockDetailPrice; stockCardDtail.QtyLast = lastStockDetail + stockCardDtail.QtyIn; stockCardDtail.QtyLastPrice = lastStockDetailPrice + stockCardDtail.QtyInPrice; stockCardDtail.PurchasingId = purchasing.Id; _sparepartStokCardDetailRepository.AttachNavigation(stockCardDtail.ParentStockCard); _sparepartStokCardDetailRepository.Add(stockCardDtail); _unitOfWork.SaveChanges(); } Reference refSelected = _referenceRepository.GetById(purchasing.PaymentMethodId); purchasing.Status = (int)DbConstant.PurchasingStatus.Active; if (refSelected != null && (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_EKONOMI || refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_BCA1 || refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_BCA2 || refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_KAS) ) { purchasing.TotalHasPaid = purchasing.TotalPrice; } if (purchasing.TotalHasPaid != purchasing.TotalPrice) { purchasing.PaymentStatus = (int)DbConstant.PaymentStatus.NotSettled; } else { purchasing.PaymentStatus = (int)DbConstant.PaymentStatus.Settled; } Purchasing entity = _purchasingRepository.GetById(purchasing.Id); //Map(purchasing, entity); entity.PaymentStatus = purchasing.PaymentStatus; entity.Status = purchasing.Status; entity.TotalHasPaid = purchasing.TotalHasPaid; entity.TotalPrice = purchasing.TotalPrice; entity.PaymentMethodId = purchasing.PaymentMethodId; _purchasingRepository.AttachNavigation(entity.CreateUser); _purchasingRepository.AttachNavigation(entity.ModifyUser); _purchasingRepository.AttachNavigation(entity.PaymentMethod); _purchasingRepository.AttachNavigation(entity.Supplier); _purchasingRepository.Update(entity); _unitOfWork.SaveChanges(); Transaction transaction = new Transaction(); transaction.TransactionDate = purchasing.Date; transaction.TotalPayment = Convert.ToDouble(purchasing.TotalHasPaid); transaction.TotalTransaction = Convert.ToDouble(purchasing.TotalPrice); transaction.ReferenceTableId = transactionReferenceTable.Id; transaction.PrimaryKeyValue = purchasing.Id; transaction.CreateDate = serverTime; transaction.CreateUserId = userID; transaction.ModifyUserId = userID; transaction.ModifyDate = serverTime; transaction.Status = (int)DbConstant.DefaultDataStatus.Active; transaction.Description = "Pembelian sparepart"; transaction.PaymentMethodId = purchasing.PaymentMethodId; _transactionRepository.AttachNavigation(transaction.CreateUser); _transactionRepository.AttachNavigation(transaction.ModifyUser); _transactionRepository.AttachNavigation(transaction.PaymentMethod); _transactionRepository.AttachNavigation(transaction.ReferenceTable); Transaction transactionInserted = _transactionRepository.Add(transaction); _unitOfWork.SaveChanges(); switch (refSelected.Code) { case DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_EKONOMI: case DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_BCA1: case DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_BCA2: { // Bank Kredit --> Karena berkurang TransactionDetail detailBank = new TransactionDetail(); detailBank.Credit = purchasing.TotalHasPaid; if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_EKONOMI) { detailBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.01").FirstOrDefault().Id; } else if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_BCA1) { detailBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.02").FirstOrDefault().Id; } else if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_BANK_BCA2) { detailBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.03").FirstOrDefault().Id; } detailBank.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailBank.Journal); _transactionDetailRepository.AttachNavigation(detailBank.Parent); _transactionDetailRepository.Add(detailBank); break; } case DbConstant.REF_PURCHASE_PAYMENTMETHOD_KAS: // Kas Kredit --> Karena berkurang TransactionDetail detailKas = new TransactionDetail(); detailKas.Credit = purchasing.TotalHasPaid; detailKas.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.01.01").FirstOrDefault().Id; detailKas.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailKas.Journal); _transactionDetailRepository.AttachNavigation(detailKas.Parent); _transactionDetailRepository.Add(detailKas); break; case DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_KAS: // Kas Kredit --> Karena berkurang TransactionDetail detailKasKarenaUangMuka = new TransactionDetail(); detailKasKarenaUangMuka.Credit = purchasing.TotalHasPaid; detailKasKarenaUangMuka.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.01.01").FirstOrDefault().Id; detailKasKarenaUangMuka.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailKasKarenaUangMuka.Journal); _transactionDetailRepository.AttachNavigation(detailKasKarenaUangMuka.Parent); _transactionDetailRepository.Add(detailKasKarenaUangMuka); // Uang Muka Debit --> Karena bertambah TransactionDetail detailUangMukaBertambahKarenaKas = new TransactionDetail(); detailUangMukaBertambahKarenaKas.Debit = purchasing.TotalHasPaid; detailUangMukaBertambahKarenaKas.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.05.01.01").FirstOrDefault().Id; detailUangMukaBertambahKarenaKas.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailUangMukaBertambahKarenaKas.Journal); _transactionDetailRepository.AttachNavigation(detailUangMukaBertambahKarenaKas.Parent); _transactionDetailRepository.Add(detailUangMukaBertambahKarenaKas); // Uang Muka Kredit --> Karena berkurang TransactionDetail detailUangMukaBerkurangKarenaKas = new TransactionDetail(); detailUangMukaBerkurangKarenaKas.Credit = purchasing.TotalHasPaid; detailUangMukaBerkurangKarenaKas.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.05.01.01").FirstOrDefault().Id; detailUangMukaBerkurangKarenaKas.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailUangMukaBerkurangKarenaKas.Journal); _transactionDetailRepository.AttachNavigation(detailUangMukaBerkurangKarenaKas.Parent); _transactionDetailRepository.Add(detailUangMukaBerkurangKarenaKas); break; case DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_EKONOMI: case DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_BCA1: case DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_BCA2: { // Bank Kredit --> Karena berkurang TransactionDetail detailBankKarenaUangMuka = new TransactionDetail(); detailBankKarenaUangMuka.Credit = purchasing.TotalHasPaid; if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_EKONOMI) { detailBankKarenaUangMuka.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.01").FirstOrDefault().Id; } else if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_BCA1) { detailBankKarenaUangMuka.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.02").FirstOrDefault().Id; } else if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_BCA2) { detailBankKarenaUangMuka.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.03").FirstOrDefault().Id; } detailBankKarenaUangMuka.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailBankKarenaUangMuka.Journal); _transactionDetailRepository.AttachNavigation(detailBankKarenaUangMuka.Parent); _transactionDetailRepository.Add(detailBankKarenaUangMuka); // Uang Muka Debit --> Karena bertambah TransactionDetail detailUangMukaBertambahKarenaBank = new TransactionDetail(); detailUangMukaBertambahKarenaBank.Debit = purchasing.TotalHasPaid; detailUangMukaBertambahKarenaBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.05.01.01").FirstOrDefault().Id; detailUangMukaBertambahKarenaBank.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailUangMukaBertambahKarenaBank.Journal); _transactionDetailRepository.AttachNavigation(detailUangMukaBertambahKarenaBank.Parent); _transactionDetailRepository.Add(detailUangMukaBertambahKarenaBank); // Uang Muka Kredit --> Karena berkurang TransactionDetail detailUangMukaBerkurangKarenaBank = new TransactionDetail(); detailUangMukaBerkurangKarenaBank.Credit = purchasing.TotalHasPaid; detailUangMukaBerkurangKarenaBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.05.01.01").FirstOrDefault().Id; detailUangMukaBerkurangKarenaBank.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailUangMukaBerkurangKarenaBank.Journal); _transactionDetailRepository.AttachNavigation(detailUangMukaBerkurangKarenaBank.Parent); _transactionDetailRepository.Add(detailUangMukaBerkurangKarenaBank); break; } case DbConstant.REF_PURCHASE_PAYMENTMETHOD_UTANG: TransactionDetail utang = new TransactionDetail(); utang.Credit = purchasing.TotalPrice - purchasing.TotalHasPaid; utang.JournalId = _journalMasterRepository.GetMany(j => j.Code == "2.01.01.01").FirstOrDefault().Id; utang.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(utang.Journal); _transactionDetailRepository.AttachNavigation(utang.Parent); _transactionDetailRepository.Add(utang); break; } if (refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_EKONOMI || refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_BCA1 || refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_BANK_BCA2 || refSelected.Code == DbConstant.REF_PURCHASE_PAYMENTMETHOD_UANGMUKA_KAS) { if (purchasing.TotalPrice > purchasing.TotalHasPaid) { // Utang Kredit --> Karena bertambah TransactionDetail utang = new TransactionDetail(); utang.Credit = purchasing.TotalPrice - purchasing.TotalHasPaid; utang.JournalId = _journalMasterRepository.GetMany(j => j.Code == "2.01.01.01").FirstOrDefault().Id; utang.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(utang.Journal); _transactionDetailRepository.AttachNavigation(utang.Parent); _transactionDetailRepository.Add(utang); } } // Sparepart Debit --> Karena bertambah TransactionDetail detailSparepart = new TransactionDetail(); detailSparepart.Debit = purchasing.TotalPrice; detailSparepart.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.04.01").FirstOrDefault().Id; detailSparepart.ParentId = transactionInserted.Id; _transactionDetailRepository.AttachNavigation(detailSparepart.Journal); _transactionDetailRepository.AttachNavigation(detailSparepart.Parent); _transactionDetailRepository.Add(detailSparepart); _unitOfWork.SaveChanges(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw; } } }
public void CheckUpdate() { Purchasing.CheckUpdate(new CheckUpdateCallbackImpl()); }
public void InsertDebt(TransactionViewModel transaction, decimal purchasingPrice, int userID) { DateTime serverTime = DateTime.Now; Reference transactionReferenceTable = _referenceRepository.GetMany(c => c.Code == DbConstant.REF_TRANSTBL_PURCHASING).FirstOrDefault(); transaction.CreateDate = serverTime; transaction.ModifyDate = serverTime; transaction.CreateUserId = userID; transaction.ModifyUserId = userID; transaction.TransactionDate = serverTime; transaction.TotalTransaction = purchasingPrice.AsDouble(); transaction.ReferenceTableId = transactionReferenceTable.Id; transaction.Status = (int)DbConstant.DefaultDataStatus.Active; transaction.Description = "Pembayaran hutang"; Transaction entity = new Transaction(); Map(transaction, entity); Transaction transactionInserted = _transactionRepository.Add(entity); Purchasing purchasingEntity = _purchasingRepository.GetById(transaction.PrimaryKeyValue); purchasingEntity.TotalHasPaid += transaction.TotalPayment.AsDecimal(); if (purchasingEntity.TotalHasPaid == purchasingEntity.TotalPrice) { purchasingEntity.PaymentStatus = (int)DbConstant.PaymentStatus.Settled; } _purchasingRepository.Update(purchasingEntity); Reference paymentMethod = _referenceRepository.GetById(transaction.PaymentMethodId); switch (paymentMethod.Code) { case DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_EKONOMI: case DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA1: case DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA2: { // Bank Kredit --> Karena berkurang TransactionDetail detailBank = new TransactionDetail(); detailBank.Credit = transaction.TotalPayment.AsDecimal(); if (paymentMethod.Code == DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_EKONOMI) { detailBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.01").FirstOrDefault().Id; } else if (paymentMethod.Code == DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA1) { detailBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.02").FirstOrDefault().Id; } else if (paymentMethod.Code == DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA2) { detailBank.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.03").FirstOrDefault().Id; } detailBank.Parent = transactionInserted; _transactionDetailRepository.Add(detailBank); break; } case DbConstant.REF_DEBT_PAYMENTMETHOD_KAS: // Kas Kredit --> Karena berkurang TransactionDetail detailKas = new TransactionDetail(); detailKas.Credit = transaction.TotalPayment.AsDecimal(); detailKas.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.01.01").FirstOrDefault().Id; detailKas.Parent = transactionInserted; _transactionDetailRepository.Add(detailKas); break; } TransactionDetail detailDebt = new TransactionDetail(); detailDebt.Debit = transaction.TotalPayment.AsDecimal(); detailDebt.JournalId = _journalMasterRepository.GetMany(j => j.Code == "2.01.01.01").FirstOrDefault().Id; detailDebt.Parent = transactionInserted; _transactionDetailRepository.Add(detailDebt); _unitOfWork.SaveChanges(); }
public void AddToProducts(Purchasing.Product product) { base.AddObject("Products", product); }
public void UpdateDebt(TransactionViewModel transaction, int userID) { DateTime serverTime = DateTime.Now; transaction.ModifyDate = serverTime; transaction.CreateUserId = userID; Transaction transactionUpdated = _transactionRepository.GetById <int>(transaction.Id); Transaction transactionOld = transactionUpdated; Purchasing purchasingEntity = _purchasingRepository.GetById(transaction.PrimaryKeyValue); NeutralizePurchasing(ref purchasingEntity, transactionOld); purchasingEntity.TotalHasPaid += transaction.TotalPayment.AsDecimal(); if (purchasingEntity.TotalHasPaid == purchasingEntity.TotalPrice) { purchasingEntity.PaymentStatus = (int)DbConstant.PaymentStatus.Settled; } _purchasingRepository.Update(purchasingEntity); Map(transaction, transactionUpdated); _transactionRepository.Update(transactionUpdated); Reference paymentMethod = _referenceRepository.GetById(transaction.PaymentMethodId); TransactionDetail debitDetail = _transactionDetailRepository.GetMany(x => x.ParentId == transaction.Id && x.Credit == null).FirstOrDefault(); TransactionDetail creditDetail = _transactionDetailRepository.GetMany(x => x.ParentId == transaction.Id && x.Debit == null).FirstOrDefault(); switch (paymentMethod.Code) { case DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_EKONOMI: case DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA1: case DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA2: { // Bank Kredit --> Karena berkurang creditDetail.Credit = transaction.TotalPayment.AsDecimal(); if (paymentMethod.Code == DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_EKONOMI) { creditDetail.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.01").FirstOrDefault().Id; } else if (paymentMethod.Code == DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA1) { creditDetail.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.02").FirstOrDefault().Id; } else if (paymentMethod.Code == DbConstant.REF_DEBT_PAYMENTMETHOD_BANK_BCA2) { creditDetail.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.02.03").FirstOrDefault().Id; } _transactionDetailRepository.Update(creditDetail); break; } case DbConstant.REF_DEBT_PAYMENTMETHOD_KAS: // Kas Kredit --> Karena berkurang creditDetail.Credit = transaction.TotalPayment.AsDecimal(); creditDetail.JournalId = _journalMasterRepository.GetMany(j => j.Code == "1.01.01.01").FirstOrDefault().Id; _transactionDetailRepository.Update(creditDetail); break; } debitDetail.Debit = transaction.TotalPayment.AsDecimal(); debitDetail.JournalId = _journalMasterRepository.GetMany(j => j.Code == "2.01.01.01").FirstOrDefault().Id; _transactionDetailRepository.Update(debitDetail); _unitOfWork.SaveChanges(); }
partial void OnProductChanging(Purchasing.Product value);