コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
            }
        }