Пример #1
0
        internal static S50cBO18.ItemTransactionDetail AddItemDetail(S50cBL18.BSOItemTransaction Transaction, short warehouseId, string itemId, double Quantity, double Price)
        {
            var transDetail = new S50cBO18.ItemTransactionDetail();

            transDetail.LineItemID = Transaction.Transaction.Details.Count + 1;

            transDetail.BaseCurrency       = Transaction.Transaction.BaseCurrency;
            transDetail.CreateDate         = Transaction.Transaction.CreateDate;
            transDetail.ActualDeliveryDate = Transaction.Transaction.ActualDeliveryDate;
            transDetail.PartyTypeCode      = Transaction.Transaction.PartyTypeCode;
            transDetail.PartyID            = Transaction.Transaction.PartyID;
            transDetail.WarehouseID        = warehouseId;
            transDetail.WarehouseOutgoing  = transDetail.WarehouseID;
            transDetail.WarehouseReceipt   = transDetail.WarehouseID;
            transDetail.PhysicalQtyRule    = StockQtyRuleEnum.stkQtyNone;

            var item = APIEngine.DSOCache.ItemProvider.GetItemForTransactionDetail(itemId, transDetail.BaseCurrency, "", true);

            if (item != null)
            {
                transDetail.ItemID              = item.ItemID;
                transDetail.Description         = item.Description;
                transDetail.TaxableGroupID      = item.TaxableGroupID;
                transDetail.ItemType            = item.ItemType;
                transDetail.FamilyID            = item.Family.FamilyID;
                transDetail.UnitList            = item.UnitList.Clone();
                transDetail.WeightUnitOfMeasure = item.WeightUnitOfMeasure;
                transDetail.WeightMeasure       = item.WeightMeasure;
                transDetail.Graduation          = item.Graduation;
                transDetail.ItemTax             = item.ItemTax;
                transDetail.ItemTax2            = item.ItemTax2;
                transDetail.ItemTax3            = item.ItemTax3;
                transDetail.UnitPrice           = Price;

                if (Transaction.Transaction.TransDocType == DocumentTypeEnum.dcTypeSale)
                {
                    transDetail.PhysicalQtyRule = StockQtyRuleEnum.stkQtyOutgoing;
                }
                else
                {
                    transDetail.PhysicalQtyRule = StockQtyRuleEnum.stkQtyReceipt;
                }

                transDetail.ProductCategory = item.ProductCategory;
                transDetail.ItemExtraInfo.ItemQuantityCalcFormula = item.ItemQuantityCalcFormula;

                if (item.UnitList.IsInCollection(transDetail.UnitOfSaleID))
                {
                    transDetail.UnitOfSaleID = transDetail.UnitOfSaleID;
                }
                else
                {
                    transDetail.UnitOfSaleID = item.GetDefaultUnitForTransaction(Transaction.Transaction.TransDocType);
                }
            }

            transDetail.SetUnitOfSaleID(transDetail.UnitOfSaleID);
            transDetail.SetQuantity(Quantity);
            transDetail.QntyAvailableBalanceCount = Quantity;


            if (Transaction.TransactionTaxIncluded)
            {
                transDetail.TaxIncludedPrice = Price;
                transDetail.UnitPrice        = APIEngine.DSOCache.TaxesProvider.GetItemNetPrice(
                    transDetail.TaxIncludedPrice,
                    transDetail.TaxableGroupID,
                    APIEngine.SystemSettings.SystemInfo.DefaultCountryID,
                    APIEngine.SystemSettings.SystemInfo.TaxRegionID);
            }
            else
            {
                transDetail.UnitPrice        = Price;
                transDetail.TaxIncludedPrice = APIEngine.DSOCache.TaxesProvider.GetItemTaxIncludePrice(
                    transDetail.UnitPrice,
                    transDetail.TaxableGroupID,
                    APIEngine.SystemSettings.SystemInfo.DefaultCountryID,
                    APIEngine.SystemSettings.SystemInfo.TaxRegionID);
            }
            return(transDetail);
        }
Пример #2
0
        private static void ItemTransactionSaveSaleWithReturnOfReturnable()
        {
            string transDoc    = "FS";
            string transSerial = "1";
            double PartyID     = 1;

            var currency             = APIEngine.SystemSettings.BaseCurrency;
            var ItemTransaction      = new S50cBL18.BSOItemTransaction();
            DocumentTypeEnum DocType = DocumentTypeEnum.dcTypeSale;
            var NewTransDocNumber    = APIEngine.DSOCache.DocumentProvider.GetNewDocNumber(transSerial, transDoc);

//-------------------------------------------------------------
// *** Header
//-------------------------------------------------------------
            // Motor do documento
            ItemTransaction.Transaction.TransDocType   = DocType;
            ItemTransaction.Transaction.TransDocNumber = NewTransDocNumber.DocNumber;
            ItemTransaction.PermissionsType            = FrontOfficePermissionEnum.foPermByUser;
            ItemTransaction.InitNewTransaction(transDoc, transSerial);
            // Motor dos detalhes (linhas)
            var bsoItemTransDetail = new S50cBL18.BSOItemTransactionDetail();

            bsoItemTransDetail.PermissionsType       = FrontOfficePermissionEnum.foPermByUser;
            bsoItemTransDetail.TransactionType       = ItemTransaction.Transaction.TransDocType;
            bsoItemTransDetail.UserPermissions       = APIEngine.SystemSettings.User;
            ItemTransaction.BSOItemTransactionDetail = bsoItemTransDetail;
            //

            ItemTransaction.PartyID = PartyID;
            ItemTransaction.TransactionTaxIncluded = true;
            ItemTransaction.createDate             = DateTime.Now;
            ItemTransaction.CreateTime             = new DateTime(DateTime.Now.TimeOfDay.Ticks);
            ItemTransaction.ActualDeliveryDate     = DateTime.Now;
            ItemTransaction.BaseCurrency           = currency.CurrencyID;
            ItemTransaction.BaseCurrencyExchange   = currency.BuyExchange;
            ItemTransaction.Transaction.Comments   = "Returnable Packaging";
            //-------------------------------------------------------------
            // *** Header
            //-------------------------------------------------------------


            //-------------------------------------------------------------
            // *** DETAILS
            //-------------------------------------------------------------
            if (ItemTransaction.Transaction.Details == null)
            {
                ItemTransaction.Transaction.Details = new S50cBO18.ItemTransactionDetailList();
            }

            //Add Line_1: art1 type normal
            var StockTransactionDetail = AddItemDetail(ItemTransaction, 1, "Bacalhau", 1, 33);

            ItemTransaction.AddDetail(StockTransactionDetail, true);

            ////Add Line_2: Enter customer returnables ,Customer input value is negative
            StockTransactionDetail = AddItemDetail(ItemTransaction, 1, "TARAS", -3, 0.30);
            ItemTransaction.AddDetail(StockTransactionDetail, true);


//-------------------------------------------------------------
// *** DETAILS
//-------------------------------------------------------------

//-------------------------------------------------------------
// *** SAVE DOCUMENT
//-------------------------------------------------------------
            //*** SAVE only if document have Lines
            if (ItemTransaction.Transaction.Details.Count > 0)
            {
                try {
                    //Ensure Till is open
                    ItemTransaction.EnsureOpenTill(ItemTransaction.Transaction.Till.TillID);
                    //Calculate
                    ItemTransaction.Calculate(true, true);
                    //Save Document
                    ItemTransaction.SaveDocument(false, false);
                    //Console.Error.Write(ItemTransaction.Transaction.TransactionID.ToString());
                }
                catch (Exception ex) {
                    Console.Error.Write(ex.Message);
                }
            }
//-------------------------------------------------------------
// *** SAVE DOCUMENT
//-------------------------------------------------------------
        }