private void BtnGenerate_Click(object sender, EventArgs e)
 {
     txbResult.Text = "Processando...";
     BlockScreen(true);
     try
     {
         PrincipalTO.CalcSmSprintData(sprintsSmList);
         PrincipalTO.CreateSmDoc(configXml, selectedPartner, outputDocPath, sprintsSmList);
         txbResult.Text = $"Relatório gerado na pasta {outputDocPath}";
     }
     catch (Exception ex)
     {
         txbResult.Text = $"Falha ao gerar arquivo. {ex.Message}";
     }
     finally
     {
         BlockScreen(false);
     }
 }
Exemple #2
0
        private void BtnGenerate_Click(object sender, System.EventArgs e)
        {
            try
            {
                bool hasSharedSM = false;
                if (cbbPartners.SelectedItem.ToString() == house)
                {
                    throw new Exception("Por favor ecolha um fornecedor para que o relatório seja gerado.");
                }

                BlockFields(true);
                txbResult.Text = "Processando...";
                //realizar os calculos e ajustar dados finais
                foreach (var sprint in sprintsDevList)
                {
                    //DEV
                    int sprintDays = (sprint.Range.EndDate - sprint.Range.IniDate).Days;
                    PrincipalTO.SetDevPresence(sprint.Contracts, sprintDays, sprint.AdaptaionSprint);
                    FornecedorDTO selectedPartner = configXml.Partners.Find(p => p.Name == cbbPartners.SelectedItem.ToString());
                    double        teamSize        = PrincipalTO.CalcTeamSize(sprint, selectedPartner);
                    sprint.TeamSize = teamSize;
                    if (sprint.AdaptaionSprint)
                    {
                        sprint.AcceptedPointsExpenses *= (int)teamSize;
                    }
                    PrincipalTO.CalcPointsPerTeamMember(sprint);
                    //SM
                    if (sprintsSmList != null)
                    {
                        var smSprint = sprintsSmList.Find(s => s.Range.Name == sprint.Range.Name);
                        smSprint.TeamSize       = teamSize;
                        smSprint.EmployeesCount = 1;
                    }
                }

                //chamar a geracao dos relatorios
                if (fluxo == UtilDTO.NAVIGATION.VARIOS_RELATORIOS)
                {
                    foreach (var partner in configXml.Partners)
                    {
                        //(TODO) Melhorar um dia
                        if (partner.Name == "Influir")
                        {
                            partner.BillingType = UtilDTO.BILLING_TYPE.UST_HORA;
                        }

                        //SM_MEDIA nao será gerado nesse fluxo
                        if (partner.Contracts.Any(contract =>
                                                  contract.Name != UtilDTO.CONTRACTS.SM_FIXO.ToString() &&
                                                  contract.Name != UtilDTO.CONTRACTS.SM_MEDIA.ToString()))
                        {
                            PrincipalTO.CreateDevDoc(configXml, partner, outputDocPath, sprintsDevList);
                        }

                        if (partner.Contracts.Any(contract => contract.Name == UtilDTO.CONTRACTS.SM_MEDIA.ToString()))
                        {
                            hasSharedSM = true;
                        }

                        if (partner.Contracts.Any(contract => contract.Name == UtilDTO.CONTRACTS.SM_FIXO.ToString()))
                        {
                            PrincipalTO.CreateSmDoc(configXml, partner, outputDocPath, sprintsSmList);
                        }
                    }
                }
                else
                {
                    var selectedPartner = configXml.Partners.Find(partner => partner.Name == cbbPartners.SelectedItem.ToString());
                    PrincipalTO.CreateDevDoc(configXml, selectedPartner, outputDocPath, sprintsDevList);
                }

                txbResult.Text = $"Arquivos gerados na pasta {outputDocPath}";
                if (hasSharedSM)
                {
                    txbResult.AppendText("\n\nRelatório para SM compartilhado deve ser gerado avulso pelo menu correspondente.");
                }
                btnOpenDestinationFolder.Enabled = true;
            }
            catch (Exception ex)
            {
                txbResult.Text = ex.Message;
                BlockFields(false);
            }
        }