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