public Issue CreateSTVLog(int? stvLogID, bool convertDNtoSTV, PickList pickList, Order order, int? supplierId, int activityId, bool hasInsurance, int userId)
        {
            int paymentTypeID = order.PaymentTypeID;
            Issue stvLog = new Issue();
            stvLog.AddNew();
            stvLog.PrintedDate = DateTimeHelper.ServerDateTime;
            stvLog.RefNo = order.RefNo;
            stvLog.PickListID = pickList.ID;
            if(supplierId != null)
            {
                stvLog.SupplierID = supplierId.Value;
            }
            stvLog.UserID = userId;
            stvLog.StoreID = activityId;
             stvLog.IsDeliveryNote = (paymentTypeID == PaymentType.Constants.DELIVERY_NOTE);
            stvLog.HasInsurance = hasInsurance;
            stvLog.FiscalYearID = FiscalYear.Current.ID;

            var activity = new Activity();
            activity.LoadByPrimaryKey(activityId);
            stvLog.AccountID = activity.AccountID;

            if (paymentTypeID == PaymentType.Constants.DELIVERY_NOTE)
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.DeliveryNote.DocumentTypeID;
            }
            else if (paymentTypeID == PaymentType.Constants.CASH)
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.Cash.DocumentTypeID;
            }
            else if (paymentTypeID == PaymentType.Constants.CREDIT)
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.Credit.DocumentTypeID;
            }
            else if (paymentTypeID == PaymentType.Constants.STV)
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.STV.DocumentTypeID;
            }
            else if(paymentTypeID == PaymentType.Constants.ERROR_CORRECTION)
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.ErrorCorrection.DocumentTypeID;
            }
            else if(paymentTypeID == PaymentType.Constants.INVENTORY)
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.EndingBalance.DocumentTypeID;
            }
            else if (paymentTypeID == PaymentType.Constants.DISPOSAL) // This should probably have a disposal document type, but for now, STV
            {
                stvLog.DocumentTypeID = DocumentType.documentTypes.STV.DocumentTypeID;
            }
            stvLog.IDPrinted = DocumentType.GetNextSequenceNo(stvLog.DocumentTypeID, stvLog.AccountID, stvLog.FiscalYearID);

            if (!order.IsColumnNull("RequestedBy"))
            {
                stvLog.ReceivingUnitID = order.RequestedBy;
            }
            if (stvLogID.HasValue)
            {
                stvLog.IsReprintOf = stvLogID.Value;
                //this means the STV is from replaced
                Issue s = new Issue();
                s.LoadByPrimaryKey(stvLogID.Value);

                stvLog.IsDeliveryNote = false;
                if (!s.IsColumnNull("IsDeliveryNote") && s.IsDeliveryNote && !convertDNtoSTV)
                {
                    stvLog.IsDeliveryNote = true;
                }
            }
            stvLog.Save();
            return stvLog;
        }