agregado procesos y bd clases
This commit is contained in:
139
Servicio Gestion Asegasa/Procesos/ProcesosContabilidad.cs
Normal file
139
Servicio Gestion Asegasa/Procesos/ProcesosContabilidad.cs
Normal file
@@ -0,0 +1,139 @@
|
||||
using bdAsegasa;
|
||||
using bdAsegasa.db;
|
||||
using bdAsegasa.dbcontext;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Servicio_Gestion_Asegasa.Procesos
|
||||
{
|
||||
public class ProcesosContabilidad
|
||||
{
|
||||
public static void CompruebaContabilidad()
|
||||
{
|
||||
using var bd = tscgestionasegasa.NuevoContexto();
|
||||
var cta = bd.cuentascorreo.First(x => x.Codigo == "SEG.GENERALES");
|
||||
string sDestinatarios = "sevilla@tecnosis.net";
|
||||
|
||||
var asis = bd.asientos.Where(x =>
|
||||
x.Fecha < x.idEjercicioNavigation.FechaInicio ||
|
||||
x.Fecha > x.idEjercicioNavigation.FechaFin ||
|
||||
x.apuntes.Any(y => y.idCuentaNavigation.idEjercicio != x.idEjercicio)
|
||||
).ToList();
|
||||
|
||||
if (asis.Count > 0)
|
||||
{
|
||||
var lFechaErronea = new List<asientos>();
|
||||
foreach (var asi in asis)
|
||||
{
|
||||
var ej = bd.ejercicioscontables.FirstOrDefault(x =>
|
||||
x.FechaCierre == null &&
|
||||
(x.FechaInicio <= asi.Fecha && x.FechaFin >= asi.Fecha)
|
||||
);
|
||||
|
||||
if (ej != null)
|
||||
{
|
||||
lFechaErronea.Add(asi);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (asi.idEjercicio != ej.idEjercicio)
|
||||
{
|
||||
asi.idEjercicio = ej.idEjercicio;
|
||||
}
|
||||
foreach (var ap in asi.apuntes)
|
||||
{
|
||||
ap.idCuenta = bd.cuentas.First(x => x.NumeroCuenta == ap.idCuentaNavigation.NumeroCuenta && x.idEjercicio == asi.idEjercicio).idCuenta;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bd.SaveChanges();
|
||||
|
||||
if (lFechaErronea.Count > 0)
|
||||
{
|
||||
var lae = lFechaErronea.Select(x => new
|
||||
{
|
||||
NumeroAsiento = x.idAsiento,
|
||||
Fecha = x.Fecha,
|
||||
Ejercicio = x.idEjercicioNavigation.Descripcion
|
||||
}).ToList();
|
||||
|
||||
byte[] fe = tsUtilidades.Excel.IEnumerableAExcel(lae);
|
||||
|
||||
bdAsegasa.db.correos.GeneraRegistroCorreoConAdjunto(bd,
|
||||
"Existen apuntes con cuentas de un ejercicio diferente al del asiento (No se corrige el asiento)",
|
||||
"Existen apuntes con cuentas de un ejercicio diferente al del asiento (Se corrige el asiento)",
|
||||
cta, fe, "AsientosFechaErronea-" + DateTime.Now.ToString("yyyy-MM-dd") + ".xlsx",
|
||||
"Asientos Con Fecha Erronea " + DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
sDestinatarios);
|
||||
|
||||
var idsErrores = lae.Select(y => y.NumeroAsiento).ToList();
|
||||
asis = asis.Where(x => !idsErrores.Contains(x.idAsiento)).ToList();
|
||||
}
|
||||
|
||||
var la = asis.Select(x => new
|
||||
{
|
||||
NumeroAsiento = x.idAsiento,
|
||||
Fecha = x.Fecha,
|
||||
Ejercicio = x.idEjercicioNavigation.Descripcion
|
||||
}).ToList();
|
||||
|
||||
byte[] f = tsUtilidades.Excel.IEnumerableAExcel(la);
|
||||
|
||||
bdAsegasa.db.correos.GeneraRegistroCorreoConAdjunto(bd,
|
||||
"Existen apuntes con cuentas de un ejercicio diferente al del asiento (Se corrige el asiento)",
|
||||
"Existen apuntes con cuentas de un ejercicio diferente al del asiento (Se corrige el asiento)",
|
||||
cta, f, "ApuntesIncoherentes-" + DateTime.Now.ToString("yyyy-MM-dd") + ".xlsx",
|
||||
"Apuntes Incoherentes " + DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
sDestinatarios);
|
||||
}
|
||||
|
||||
asis = bd.asientos.Where(x => x.Fecha < x.idEjercicioNavigation.FechaInicio || x.Fecha > x.idEjercicioNavigation.FechaFin).ToList();
|
||||
|
||||
if (asis.Count > 0)
|
||||
{
|
||||
var la = asis.Select(x => new
|
||||
{
|
||||
NumeroAsiento = x.idAsiento,
|
||||
Fecha = x.Fecha,
|
||||
Ejercicio = x.idEjercicioNavigation.Descripcion
|
||||
}).ToList();
|
||||
|
||||
byte[] f = tsUtilidades.Excel.IEnumerableAExcel(la);
|
||||
|
||||
bdAsegasa.db.correos.GeneraRegistroCorreoConAdjunto(bd,
|
||||
"Existen asientos con fecha incoherente al del ejercicio",
|
||||
"Existen asientos con fecha incoherente al del ejercicio",
|
||||
cta, f, "AsientosIncoherentes-" + DateTime.Now.ToString("yyyy-MM-dd") + ".xlsx",
|
||||
"Asientos Incoherentes " + DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
sDestinatarios);
|
||||
}
|
||||
|
||||
asis = bd.asientos.Where(x => Math.Round((double)x.apuntes.Sum(y => y.Debe ), 2) != Math.Round((double)x.apuntes.Sum(y => y.Haber), 2)).ToList();
|
||||
|
||||
if (asis.Count > 0)
|
||||
{
|
||||
var la = asis.Select(x => new
|
||||
{
|
||||
NumeroAsiento = x.idAsiento,
|
||||
Fecha = x.Fecha,
|
||||
Ejercicio = x.idEjercicioNavigation.Descripcion,
|
||||
Debe = Math.Round((double)x.apuntes.Sum(y => y.Debe ), 2, MidpointRounding.AwayFromZero),
|
||||
Haber = Math.Round((double)x.apuntes.Sum(y => y.Haber ), 2, MidpointRounding.AwayFromZero)
|
||||
}).ToList();
|
||||
|
||||
byte[] f = tsUtilidades.Excel.IEnumerableAExcel(la);
|
||||
|
||||
bdAsegasa.db.correos.GeneraRegistroCorreoConAdjunto(bd,
|
||||
"Existen asientos descuadrados",
|
||||
"Existen asientos descuadrados",
|
||||
cta, f, "AsientosDescuadrados-" + DateTime.Now.ToString("yyyy-MM-dd") + ".xlsx",
|
||||
"Asientos Descuadrados " + DateTime.Now.ToString("yyyy-MM-dd"),
|
||||
sDestinatarios);
|
||||
}
|
||||
|
||||
asis = bd.asientos.Where(x => x.Fecha < x.idEjercicioNavigation.FechaInicio || x.Fecha > x.idEjercicioNavigation.FechaFin).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user