public override void ValidaAlteracaoDeStatus(GestaoStatusContrato gestaoStatus, string numeroContrato)
        {
            var tabelaContratoFinal = "[@UPD_OCFC]";

            if (gestaoStatus.StatusPersistente == StatusPreContrato.Autorizado && gestaoStatus.StatusVolatil == StatusPreContrato.Esboço)
            {
                using (var recordset = new RecordSet())
                {
                    var rs = recordset.DoQuery($"SELECT COUNT(*) as cont FROM {tabelaContratoFinal} WHERE {_status.Datasource} <> '{StatusContratoFinal.Cancelado}' AND {_numeroDoContrato.Datasource} = '{numeroContrato}'");
                    if (rs.Fields.Item("cont").Value > 0)
                    {
                        throw new BusinessRuleException(
                                  $@"Não é possível alterar a situação do contrato de '{nameof(StatusPreContrato.Autorizado)}' para '{nameof(StatusPreContrato.Esboço)}'.
                        Existem Contratos Finais neste contrato, que impossibilitam a alteração.");
                    }
                }
            }
            else if (gestaoStatus.StatusPersistente == StatusPreContrato.Autorizado && gestaoStatus.StatusVolatil == StatusPreContrato.Encerrado)
            {
                using (var recordset = new RecordSet())
                {
                    var rs = recordset.DoQuery(
                        $@"SELECT 
                            COUNT(*) as cont FROM {tabelaContratoFinal} 
                        WHERE {_status.Datasource} <> '{StatusContratoFinal.Cancelado}' AND {_status.Datasource} <> '{StatusContratoFinal.Encerrado}'  AND {_numeroDoContrato.Datasource} = '{numeroContrato}' ");
                    if (rs.Fields.Item("cont").Value > 0)
                    {
                        throw new BusinessRuleException(
                                  $@"Não é possível alterar a situação do contrato de '{nameof(StatusPreContrato.Autorizado)}' para '{nameof(StatusPreContrato.Encerrado)}'.
                        Existem Contratos Finais neste contrato, que impossibilitam a alteração.");
                    }
                }
            }
            else if (gestaoStatus.StatusPersistente == StatusPreContrato.Autorizado && gestaoStatus.StatusVolatil == StatusPreContrato.Cancelado)
            {
                using (var recordset = new RecordSet())
                {
                    var rs = recordset.DoQuery($"SELECT COUNT(*) as cont FROM {tabelaContratoFinal} WHERE {_status.Datasource} <> '{StatusContratoFinal.Cancelado}'  AND {_numeroDoContrato.Datasource} = '{numeroContrato}'");
                    if (rs.Fields.Item("cont").Value > 0)
                    {
                        throw new BusinessRuleException(
                                  $@"Não é possível alterar a situação do contrato de '{nameof(StatusPreContrato.Autorizado)}' para '{nameof(StatusPreContrato.Cancelado)}'.
                        Existem Contratos Finais neste contrato, que impossibilitam a alteração.");
                    }
                }
            }
        }
예제 #2
0
 public override void ValidaAlteracaoDeStatus(GestaoStatusContrato gestaoStatus, string numeroContrato)
 {
 }