public string InsertOrUpdateChild(TransactionLineDTO transactionLine) { try { var validate = ValidateChild(transactionLine); if (!string.IsNullOrEmpty(validate)) { return(validate); } if (ObjectExistsChild(transactionLine)) { return(GenericMessages.DatabaseErrorRecordAlreadyExists); } _transactionLineRepository.InsertUpdate(transactionLine); _unitOfWork.Commit(); return(string.Empty); } catch (Exception exception) { return(exception.Message); } }
public ItemQuantityDTO UnPostUpdateInventory(TransactionLineDTO line, IDbContext idbDbContext) { var itemQty = new ItemQuantityService(idbDbContext).GetByCriteria(line.Transaction.WarehouseId, line.ItemId); if (itemQty == null) { MessageBox.Show("Can't get item to do the Un-post, Please try again!!"); return(null); } switch (line.Transaction.TransactionType) { case TransactionTypes.SellStock: itemQty.QuantityOnHand = itemQty.QuantityOnHand + line.Unit; break; case TransactionTypes.RecieveStock: if (itemQty.QuantityOnHand < line.Unit) { return(null); } itemQty.QuantityOnHand = itemQty.QuantityOnHand - line.Unit; break; case TransactionTypes.TransferStock: itemQty.QuantityOnHand = itemQty.QuantityOnHand + line.Unit; break; } return(itemQty); }
public string InsertOrUpdateChild(TransactionLineDTO transactionLine) { try { var validate = ValidateChild(transactionLine); if (!string.IsNullOrEmpty(validate)) { return(validate); } if (ObjectExistsChild(transactionLine)) { return(GenericMessages.DatabaseErrorRecordAlreadyExists); } _transactionLineRepository.InsertUpdate(transactionLine); #region Update Transaction var noofitems = 1; var salesum = transactionLine.LinePrice; var purchasesum = transactionLine.LinePurchasePrice; var tran = _transactionRepository.FindById(transactionLine.TransactionId); if (tran.Id != 0) { var childs = GetChilds(transactionLine.TransactionId, false) .Where(l => l.Id != transactionLine.Id).ToList(); noofitems = childs.Count + 1; salesum = childs.Sum(l => l.LinePrice) + transactionLine.LinePrice; purchasesum = childs.Sum(l => l.LinePurchasePrice) + transactionLine.LinePurchasePrice; } tran.NoofItems = noofitems; tran.SubTotal = salesum; tran.TotalDue = salesum; tran.TotalPurchasingCost = purchasesum; _transactionRepository.InsertUpdate(tran); #endregion _unitOfWork.Commit(); //Generate New TransactionNumber if (string.IsNullOrEmpty(tran.TransactionNumber)) { return(GetNewTransactionNumber(tran)); } return(string.Empty); } catch (Exception exception) { return(exception.Message); } }
private void SaveLine(object obj) { try { if (SelectedItem == null) { MessageBox.Show("Choose Item First"); return; } if (SelectedTransactionHeaderLine.Unit == 0) { MessageBox.Show("Qty Should be above 0"); return; } if (TransactionType == TransactionTypes.TransferStock && SelectedToWarehouse != null) { SelectedTransactionHeaderLine.Transaction.ToWarehouseId = SelectedToWarehouse.Id; } SelectedTransactionHeaderLine.ItemId = SelectedItem.Id; var stat = _transactionService.InsertOrUpdateChild(SelectedTransactionHeaderLine); if (stat != string.Empty) { MessageBox.Show("Can't save Stock Receive Data" + Environment.NewLine + stat, "Can't save", MessageBoxButton.OK, MessageBoxImage.Error); } else { GetTransactionLines(); } SelectedItem = null; var txtBox = obj as RadAutoCompleteBox; if (txtBox != null) { txtBox.Focus(); } SelectedTransactionHeaderLine = new TransactionLineDTO() { Transaction = SelectedTransactionHeader }; } catch (Exception exception) { MessageBox.Show("Problem adding transaction item, please try again..." + Environment.NewLine + exception.Message + Environment.NewLine + exception.InnerException); } }
public bool ObjectExistsChild(TransactionLineDTO transactionLine) { var objectExists = false; //var iDbContext = DbContextUtil.GetDbContextInstance(); //try //{ // var catRepository = new Repository<TransactionLineDTO>(iDbContext); // var catExists = catRepository.GetAll() // .FirstOrDefault(bp => bp.TransactionId == transactionLine.TransactionId && bp.ItemId == transactionLine.ItemId && bp.Id != transactionLine.Id); // if (catExists != null) // objectExists = true; //} //finally //{ // iDbContext.Dispose(); //} return(objectExists); }
public string DisableChild(TransactionLineDTO transactionLine) { if (transactionLine == null || transactionLine.Id == 0 || transactionLine.Transaction == null || transactionLine.Transaction.Status != TransactionStatus.Order) { return("First choose Item to delete..."); } string stat; try { _transactionLineRepository.Update(transactionLine); #region Update Transaction var tran = transactionLine.Transaction; var childs = GetChilds(transactionLine.TransactionId, false) .Where(l => l.Id != transactionLine.Id).ToList(); var noofitems = childs.Count; var salesum = childs.Sum(l => l.LinePrice); var purchasesum = childs.Sum(l => l.LinePurchasePrice); tran.NoofItems = noofitems; tran.SubTotal = salesum; tran.TotalDue = salesum; tran.TotalPurchasingCost = purchasesum; _transactionRepository.InsertUpdate(tran); #endregion _unitOfWork.Commit(); stat = string.Empty; } catch (Exception exception) { stat = exception.Message; } return(stat); }
public string ValidateChild(TransactionLineDTO transactionLine) { if (null == transactionLine) { return(GenericMessages.ObjectIsNull); } //if (transactionLine.TransactionId == 0) // return "Transaction " + GenericMessages.ObjectIsNull; if (transactionLine.ItemId == 0) { return("No item is found in the physical inventory line"); } if (transactionLine.Unit <= 0) { return(transactionLine.Unit + " can not be less than or equal 0 "); } return(string.Empty); }
public string DisableChild(TransactionLineDTO transactionLine) { if (transactionLine == null || transactionLine.Id == 0 || transactionLine.Transaction == null) { return("First choose Item to delete..."); } string stat; try { _transactionLineRepository.Update(transactionLine); _unitOfWork.Commit(); stat = string.Empty; } catch (Exception exception) { stat = exception.Message; } return(stat); }
private void ExecuteSaveItemViewCommand(object obj) { try { CurrentItem.CategoryId = SelectedCategory.Id; CurrentItem.UnitOfMeasureId = SelectedUnitOfMeasure.Id; var stat = _itemService.InsertOrUpdate(CurrentItem); if (stat == string.Empty) { if (SelectedTransaction != null) { //if (TransactionQuantity == null || (TransactionQuantity!=null && TransactionQuantity<=0)) //{ // MessageBox.Show("Quantity Can't Be Empty and Less than or equalzero"); // return; //} var selectedTransactionLine = new TransactionLineDTO() { TransactionId = SelectedTransaction.Id }; if (SelectedTransaction.Id == 0) { selectedTransactionLine.Transaction = SelectedTransaction; } selectedTransactionLine.ItemId = CurrentItem.Id; selectedTransactionLine.Unit = (decimal)TransactionLine.UnitQuantity;// TransactionQuantity; selectedTransactionLine.EachPrice = 0; stat = new TransactionService(true).InsertOrUpdateChild(selectedTransactionLine); if (string.IsNullOrEmpty(stat)) { selectedTransactionLine.Item = new ItemDTO() { ItemCode = CurrentItem.ItemCode, Id = CurrentItem.Id }; TransactionLines.Add(selectedTransactionLine); } } #region Change Item Qty after adding a new PI //if (QuantityEditVisibility != null && QuantityEditVisibility == "Visible" && // _itemPreviousQty != CurrentQuantity && SelectedWarehouse != null && SelectedWarehouse.Id != -1) //{ // var itemQty = new ItemQuantityDTO // { // WarehouseId = SelectedWarehouse.Id, // ItemId = CurrentItem.Id, // QuantityOnHand = CurrentQuantity // }; // var stat2 = _itemQuantityService.InsertOrUpdate(itemQty, true); // if (stat2 == string.Empty) // CloseWindow(obj); // else // MessageBox.Show( // "item detail saved successfully but updating quantity failed, try again..." + // Environment.NewLine + stat2, "save error", MessageBoxButton.OK, MessageBoxImage.Error); //} //else //{ // CloseWindow(obj); //} #endregion CurrentItem = GetNewCurrentItem(); TransactionLine = new TransactionLineModel(); ItemsListVisibility = "Collapsed"; _itemPreviousQty = 0; } else { MessageBox.Show("Got Problem while saving item, try again..." + Environment.NewLine + stat, "save error", MessageBoxButton.OK, MessageBoxImage.Error); } } catch (Exception exception) { MessageBox.Show("Problem saving Item..." + Environment.NewLine + exception.Message + Environment.NewLine + exception.InnerException); } }