Пример #1
0
        public async Task <BE.Formularios.Presentaciones> Generar(BE.Formularios.Presentaciones pPresentacion)
        {
            ITransaction transaction = session.BeginTransaction();

            try
            {
                switch (pPresentacion.Interno)
                {
                case 0:
                    //Busco los establecimientos
                    var establecimientos = await session.Query <BE.Formularios.RefEstablecimiento>()
                                           .Where(a => a.CUIT == pPresentacion.CUIT && a.BajaMotivo == 0)
                                           .ToListAsync();

                    pPresentacion.FechaHoraGeneracion      = DateTime.Now;
                    pPresentacion.CantidadEstablecimientos = establecimientos.Count;
                    session.Save(pPresentacion);

                    foreach (var item in establecimientos)
                    {
                        //Recorro todos los formularios del CUIT que no tengan presentacion y asigno el dato
                        switch (pPresentacion.Tipo)
                        {
                        //Formularios RGRL
                        case "R":
                            var formularioRGRL = await session.Query <BE.Formularios.RespuestasFormulario>()
                                                 .Where(a => a.InternoEstablecimiento == item.Interno && a.InternoPresentacion == 0)
                                                 .FirstOrDefaultAsync();

                            if (formularioRGRL != null)
                            {
                                formularioRGRL.InternoPresentacion = pPresentacion.Interno;
                                session.Merge(formularioRGRL);
                            }
                            break;

                        //RAR
                        case "A":
                            var formularioRAR = await session.Query <BE.FormRAR.FormulariosRAR>()
                                                .Where(a => a.InternoEstablecimiento == item.Interno && a.InternoPresentacion == 0)
                                                .FirstOrDefaultAsync();

                            if (formularioRAR != null)
                            {
                                formularioRAR.InternoPresentacion = pPresentacion.Interno;
                                session.Merge(formularioRAR);
                            }
                            break;

                        default:
                            break;
                        }
                    }
                    break;

                default:
                    session.Merge(pPresentacion);
                    break;
                }


                session.Flush();
                transaction.Commit();
                transaction.Dispose();

                return(pPresentacion);
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }
        }
Пример #2
0
 public async Task <BE.Formularios.Presentaciones> Generar(BE.Formularios.Presentaciones pPresentacion)
 {
     return(await DAL.Formularios.CRUDPresentaciones.instancia.Generar(pPresentacion));
 }