Dim ses As New NotesSession
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument'документ який будем міняти
Dim dcres As NotesDocumentCollection'колекція респонзів основного документу
Dim docres As NotesDocument'респонз основного документу
Dim doctp As NotesDocument'шаблонний документ
Dim doctpres As NotesDocument'респонз шаблонного документу
Dim clone As NotesDocument 'майбутній дитинський документ клієнта
Dim dc As NotesDocumentCollection'колекція документів для зміни
Dim dctp As NotesDocumentCollection'колекція темплейтів
Dim dctpres As NotesDocumentCollection'колекція респонзів до темплейту
Dim db As NotesDatabase
Dim tp As String
Dim tptempl As String
Dim fm As Variant
Dim value As String
Dim v As String
Set db = ses.CurrentDatabase
Set dc = ses.CurrentDatabase.UnprocessedDocuments
If dc.Count >0 Then
Set doc = dc.GetFirstDocument
While Not doc Is Nothing
tp = doc.GetItemValue("CustomerType")(0) ' визначаєм поточний тип клієнта
'діалог вибору, щоб визначити необхідний тип клієнта
Set dctp = ws.PickListCollection( 3, False, db.Server,db.FilePath , "vw-customer-types", "Оберіть необхідний тип документу", "тип документу" )
If dctp.Count > 0 Then
Set doctp = dctp.GetFirstDocument
tptempl = doctp.GetItemValue("Code")(0)
Else
Exit Sub
End If
Call doc.ReplaceItemValue("Code", tptempl)
Set dctpres = doctp.Responses
Set dcres = doc.Responses
If dctpres.Count>0 Then
Set doctpres = dctpres.GetFirstDocument
While doctpres.form(0)="document"
If doctpres.IsMandatory(0)="M" Then
v = doctpres.GetItemValue("DocNo")(0)
Set docres = dcres.GetFirstDocument
While docres.form(0)="document"
value = docres.GetItemValue("DocID")(0)
ss$ = Strrightback(value, ".")
If ss$=v Then
If doctpres.IsMandatory(0)=docres.IsMandatory(0) Then
Else
Call doc.ReplaceItemValue("IsMandatory", doctpres.IsMandatory(0))
End If
Else
Set clone = db.CreateDocument
If Not clone Is Nothing Then
clone.form = doctpres.form(0)
clone.DocName = doctpres.DocName(0)
clone.IsMandatory = doctpres.IsMandatory(0)
clone.DocComment = doctpres.DocComment(0)
clone.form = doctpres.form(0)
Call clone.CopyAllItems(doctpres)
Call clone.RemoveItem("$UpdatedBy")
clone.isClone = "1"
Call clone.ReplaceItemValue ( "DocBranchDate", Evaluate ({ @Now }))
clone.DocVer = 1
clone.DocNo = doc.customerid(0) & "." & doctpres.DocNo(0)
clone.DocID = clone.DocNo(0)
clone.isTemplate = "0"
Call clone.MakeResponse(doc)
Call clone.Save(True, False)
End If
End If
Set docres = dcres.GetNextDocument(docres)
Wend
End If
Set doctpres = dctpres.GetNextDocument(doctpres)
Wend
End If
Wend
End If
Call doc.Save(True, False)