Beispiel #1
0
 protected override void DataBind()
 {
     _protocolDataSet = new ProtocolDataSet();
     foreach (var collaboration in Items)
     {
         var row = _protocolDataSet.CollaborationDataTable.NewCollaborationDataTableRow();
         row.Collaboration_ID               = collaboration.Id.ToString();
         row.Collaboration_Object           = collaboration.CollaborationObject;
         row.Collaboration_RegistrationDate = collaboration.RegistrationDate.ToString("dd/MM/yyyy");
         _protocolDataSet.CollaborationDataTable.Rows.Add(row);
     }
     PrimaryTableName = "CollaborationDataTable";
     DataSource       = _protocolDataSet;
 }
Beispiel #2
0
        protected override void DataBind()
        {
            FileLogger.Debug(LoggerName, "ProtocolReport.DataBind() - Caricamento dati di protocollo.");
            _protocolDataSet = new ProtocolDataSet();
            foreach (var protocol in Items)
            {
                var cat = Factory.ProtocolFacade.GetCategory(protocol);

                var row = _protocolDataSet.ProtocolDataTable.NewProtocolDataTableRow();
                row.Protocol_ID        = string.Format("{0:0000}/{1:000000}", protocol.Year, protocol.Number);
                row.Protocol_Year      = protocol.Year;
                row.Protocol_Number    = protocol.Number;
                row.Protocol_Signature = Factory.ProtocolFacade.GenerateSignature(protocol, protocol.RegistrationDate.DateTime, new ProtocolSignatureInfo {
                    DocumentType = ProtocolDocumentType.Main
                });

                row.Protocol_Object = protocol.ProtocolObject;

                if (protocol.RegistrationDate != null)
                {
                    row.Protocol_RegistrationDate = protocol.RegistrationDate.LocalDateTime;
                    row.Protocol_FullNumber       = ProtocolFacade.ProtocolFullNumber(protocol.Year, protocol.Number) + "\r\n" + string.Format("{0:dd/MM/yyyy}", protocol.RegistrationDate);
                }
                row.Protocol_RegistrationUser = protocol.RegistrationUser;

                // CLASSIFICATORE
                row.Category_ID          = cat.Id;
                row.Category_Description = Factory.ProtocolFacade.GetCategoryDescription(protocol);
                row.Category_Code        = Factory.ProtocolFacade.GetCategoryCode(protocol);
                row.Category_FullCode    = cat.FullCodeDotted;


                // CONTENITORE
                if (protocol.Container != null)
                {
                    row.Container_ID          = protocol.Container.Id;
                    row.Container_Description = protocol.Container.Name;
                }

                row.Protocol_DocumentCode = protocol.DocumentCode;

                if (protocol.DocumentDate != null)
                {
                    row.Protocol_DocumentDate = protocol.DocumentDate.Value;
                }
                if (protocol.DocumentProtocol != null)
                {
                    row.Protocol_DocumentProtocol = protocol.DocumentProtocol;
                    //Protocollo del mittente già formattato
                    row.Protocol_POrigin = string.Format("{0} {1}", protocol.DocumentProtocol.Replace("|", @"/"), protocol.DocumentDate.HasValue ? protocol.DocumentDate.Value.ToString("dd/MM/yyyy") : "");
                }

                if (protocol.DocumentType != null)
                {
                    row.DocumentType_ID          = protocol.DocumentType.Id;
                    row.DocumentType_Description = protocol.DocumentType.Description;
                }
                if (protocol.Status != null)
                {
                    row.Protocol_Advanced_Status = protocol.Status.Description;
                }

                if (protocol.IdStatus.HasValue)
                {
                    row.Protocol_StatusId          = protocol.IdStatus.Value.ToString(CultureInfo.InvariantCulture);
                    row.Protocol_StatusDescription = ProtocolFacade.GetStatusDescription(protocol.IdStatus.Value);
                    //Annullamento
                    if (protocol.IdStatus.Value == (int)ProtocolStatusId.Annullato)
                    {
                        row.Protocol_Cancellation = string.Format("Estremi Annullamento: {0}", StringHelper.ReplaceCrLf(protocol.LastChangedReason, ""));
                    }
                }

                if (protocol.Type != null)
                {
                    row.Protocol_TypeId          = protocol.Type.Id.ToString(CultureInfo.InvariantCulture);
                    row.Protocol_TypeName        = ProtocolTypeFacade.CalcolaTipoProtocolloChar(protocol.Type.Id);
                    row.Protocol_TypeDescription = ProtocolTypeFacade.CalcolaTipoProtocollo(protocol.Type.Id);
                }

                row.Protocol_ServiceCategory = protocol.ServiceCategory;
                row.Protocol_Note            = protocol.Note;
                if (protocol.Location != null)
                {
                    row.Protocol_Location = protocol.Location.Name;
                }
                if (protocol.AdvanceProtocol != null)
                {
                    row.Protocol_Proposer = protocol.AdvanceProtocol.Subject;
                }
                row.Protocol_LastChangedDate = protocol.LastChangedDate.DefaultString();
                row.Protocol_LastChangedUser = protocol.LastChangedUser;
                if (DocSuiteContext.Current.ProtocolEnv.ParerEnabled)
                {
                    row.Protocol_ParerStatusCode = (int)Factory.ProtocolParerFacade.GetConservationStatus(protocol);
                    var parerDescription = string.Empty;
                    if (!Factory.ProtocolParerFacade.Exists(protocol))
                    {
                        parerDescription = "Documento non ancora versato.";
                    }
                    else
                    {
                        switch (row.Protocol_ParerStatusCode)
                        {
                        case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Correct:
                            parerDescription = "Conservazione corretta.";
                            break;

                        case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Warning:
                            parerDescription = "Conservazione con avviso.";
                            break;

                        case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Error:
                            parerDescription = "Conservazione con errori.";
                            break;

                        case (int)ProtocolParerFacade.ProtocolParerConservationStatus.Undefined:
                            parerDescription = "Stato conservazione non definito.";
                            break;

                        case (int)ProtocolParerFacade.ProtocolParerConservationStatus.NotNeeded:
                            parerDescription = "Documento non soggetto a versamento.";
                            break;
                        }
                    }
                    row.Protocol_ParerStatusDescription = parerDescription;
                }

                //Verifico se ci sono settori autorizzati
                row.Protocol_hasRoles = (protocol.Roles.Count > 0).ToString();

                _protocolDataSet.ProtocolDataTable.Rows.Add(row);

                //Mittenti
                foreach (var contact in Factory.ProtocolFacade.GetSenders(protocol))
                {
                    _protocolDataSet.ContactDataTable.Rows.Add(ContactDataBind(contact, row.Protocol_ID, true));
                }

                //Destinatari
                foreach (var contact in Factory.ProtocolFacade.GetRecipients(protocol))
                {
                    _protocolDataSet.ContactDataTable.Rows.Add(ContactDataBind(contact, row.Protocol_ID, false));
                }

                //TODO: inserire il datatable nelle ProcotolDataSet e fare il bind

                //Settori
                foreach (var protocolRole in protocol.Roles)
                {
                    var roleRow = _protocolDataSet.RoleDataTable.NewRoleDataTableRow();
                    roleRow.Protocol_ID = row.Protocol_ID;
                    roleRow.Role_ID     = protocolRole.Role.Id;
                    roleRow.Role_Name   = protocolRole.Role.Name;
                    _protocolDataSet.RoleDataTable.Rows.Add(roleRow);
                }

                foreach (var protocolEmail in protocol.OutgoingPecMailsActive)
                {
                    var mailrow = _protocolDataSet.PECMailOutgoingDataTable.NewPECMailOutgoingDataTableRow();
                    mailrow.Protocol_ID = row.Protocol_ID;
                    mailrow.IDPECMail   = protocolEmail.Id;
                    mailrow.MailSubject = protocolEmail.MailSubject;
                    mailrow.MailDate    = protocolEmail.MailDate.HasValue ? protocolEmail.MailDate.Value : DateTime.MinValue;
                    _protocolDataSet.PECMailOutgoingDataTable.Rows.Add(mailrow);
                }

                foreach (var message in protocol.Messages)
                {
                    foreach (var mail in message.Message.Emails)
                    {
                        var mailrow = _protocolDataSet.MessageEmailDataTable.NewMessageEmailDataTableRow();
                        mailrow.Protocol_ID    = row.Protocol_ID;
                        mailrow.IDMessageEmail = mail.Id;
                        mailrow.Subject        = mail.Subject;
                        mailrow.SentDate       = mail.SentDate.HasValue ? mail.SentDate.Value : DateTime.MinValue;
                        _protocolDataSet.MessageEmailDataTable.Rows.Add(mailrow);
                    }
                }
            }

            DataSource = _protocolDataSet;
        }