示例#1
0
        public void CriarEntregaveisEmLote([FromBody] InputEntregavel entregavel)
        {
            using (var db = new FIPEContratosContext())
            {
                var strategy = db.Database.CreateExecutionStrategy();

                strategy.Execute(() =>
                {
                    using (var transaction = db.Database.BeginTransaction())
                    {
                        try
                        {
                            var bEntregavel = new bEntregavel(db);
                            bEntregavel.CriarEntregaveisEmLote(entregavel);

                            db.Database.CommitTransaction();
                        }
                        catch (Exception ex)
                        {
                            new bEmail(db).EnviarEmailTratamentoErro(ex, "EntregavelController-CriarEntregaveisEmLote");

                            throw ex;
                        }
                    }
                });
            }
        }
        public void CriarEntregaveisEmLote(InputEntregavel parametroEntregavel_)
        {
            List <OutPutGetCliente> clienteContratante = new bCliente(db).ListaContratoClientes(parametroEntregavel_.IdContrato);

            int numero      = 0;
            var entregaveis = db.ContratoEntregavel.Where(w => w.IdContrato == parametroEntregavel_.IdContrato).ToList();

            if (entregaveis.Count > 0)
            {
                numero = db.ContratoEntregavel.Where(w => w.IdContrato == parametroEntregavel_.IdContrato).Last().VlOrdem;
            }

            foreach (var cliente in clienteContratante)
            {
                for (int i = 0; i < parametroEntregavel_.Quantidade; i++)
                {
                    numero++;
                    DateTime novaData = parametroEntregavel_.DataPrevista.AddMonths(i);
                    CriarNovoEntregavelLote(parametroEntregavel_.Nome, novaData, parametroEntregavel_.IdContrato, 0, numero, cliente.IdContratoCliente.ObterValorInteiro());
                }
            }
        }