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); }
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 //------------------------------------------------------------- }