private void ExtrasLiquidAcIon_Attach(ExtrasLiquidAcIon entity) { entity.EmPleadOs = this; }
private void ExtrasLiquidAcIon_Detach(ExtrasLiquidAcIon entity) { entity.EmPleadOs = null; }
private void ExtrasLiquidAcIon_Detach(ExtrasLiquidAcIon entity) { entity.UsUarIoS = null; }
private void ExtrasLiquidAcIon_Attach(ExtrasLiquidAcIon entity) { entity.UsUarIoS = this; }
private void ExtrasLiquidAcIon_Detach(ExtrasLiquidAcIon entity) { entity.TipOExtraLiquidAcIon = null; }
private void ExtrasLiquidAcIon_Attach(ExtrasLiquidAcIon entity) { entity.TipOExtraLiquidAcIon = this; }
// 2010-05-12 - JG: Esta es la primer version de los extrasliquidacion, cuando se usaba una sola tabla. //public int agregarExtraLiquidacionEmpleado(int idEmpleado, DateTime fecha, string descripcion, bool signoPositivo, float valor, int cantidadCuotas) //{ // ExtrasLiquidAcIonEmPleadO exliq; // Table<ExtrasLiquidAcIonEmPleadO> tabla; // try // { // tabla = database.GetTable<ExtrasLiquidAcIonEmPleadO>(); // int cuotaActual = 1; // int idExtraARetornar = -1; // DateTime mesCorrespondiente = fecha; // uint proximoIdExtraEmpleado; // List<uint> ListExtras = (from reg in tabla // where reg.IDEmpleado == idEmpleado // select reg.IDExtrasLiquidacionEmpleado).ToList<uint>(); // uint extras=0; // if (ListExtras.Count > 0) // extras = ListExtras.Max(); // proximoIdExtraEmpleado = (uint)extras + 1; // // Se crea un registro nuevo por cada cuota, aumentando la cuota y el mes // while (cuotaActual <= cantidadCuotas) // { // exliq = new ExtrasLiquidAcIonEmPleadO(); // exliq.IDEmpleado = (uint) idEmpleado; // exliq.IDExtrasLiquidacionEmpleado = proximoIdExtraEmpleado; // exliq.Fecha = mesCorrespondiente; // //if (signoPositivo) // // exliq.Signo = 1; // //else // // exliq.Signo = -1; // exliq.Valor = valor/cantidadCuotas; // //exliq.CantidadCuotas = (sbyte)cantidadCuotas; // exliq.Descripcion = descripcion; // //exliq.CuotaActual = (sbyte) cuotaActual; // tabla.InsertOnSubmit(exliq); // if (cuotaActual == 1) // Si es la primer cuota, todo el idextra nuevo para retornarlo // idExtraARetornar = (int) exliq.IDExtrasLiquidacionEmpleado; // cuotaActual++; // Aumento en uno la cuota actual // mesCorrespondiente = mesCorrespondiente.AddMonths(1); // Aumento en 1 el mes correspondiente de la cuota. // } // database.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict); // if (idExtraARetornar != -1) // { // return idExtraARetornar; // } // else // throw new Exception("Error al crear los Extras para el empleado."); // } // catch (Exception ex) // { // throw ex; // } //} public int agregarExtraLiquidacionEmpleado(int idEmpleado, DateTime fecha, string descripcion, bool signoPositivo, float valor, int cantidadCuotas, string userName, int idTipoExtraLiquidacion, TimeSpan cantHs_LlevaHs, decimal porcentaje) { Table<ExtrasLiquidAcIon> tablaExtrasLiquidacion = null; Table<CuOtAsExtrasLiquidAcIon> tablaCuotas; int idExtraARetornar = -1; CuOtAsExtrasLiquidAcIon cuota; ExtrasLiquidAcIon el = null; int estado = 0; try { int idUsuario = (from user in database.UsUarIoS where user.UserName == userName select user.IDUsuario).Single(); tablaExtrasLiquidacion = database.GetTable<ExtrasLiquidAcIon>(); tablaCuotas = database.GetTable<CuOtAsExtrasLiquidAcIon>(); DateTime mesCorrespondiente = fecha; el = new ExtrasLiquidAcIon(); el.IDEmpleado = (uint) idEmpleado; el.Descripcion = descripcion; el.Signo = (signoPositivo ? (sbyte)1 : (sbyte)0); el.CuotaActual = 1; el.CantidadCuotas = (byte)cantidadCuotas; el.IDUsuario = idUsuario; el.IDTipoExtraLiquidacion = (byte)idTipoExtraLiquidacion; el.CantHsTipoExtraLlevaHsEnSegs = (int)cantHs_LlevaHs.TotalSeconds; el.Porcentaje = porcentaje; tablaExtrasLiquidacion.InsertOnSubmit(el); database.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict); idExtraARetornar = (int)el.IDExtraLiquidacion; if (idExtraARetornar == -1) { throw new Exception("Error al crear los Extras para el empleado."); } // Primer estado, al confirmar el insert del extra estado = 1; EntitySet<CuOtAsExtrasLiquidAcIon> set = new EntitySet<CuOtAsExtrasLiquidAcIon>(); int numCuota = 1; while (numCuota <= cantidadCuotas) { cuota = new CuOtAsExtrasLiquidAcIon(); cuota.Fecha = mesCorrespondiente; cuota.Liquidado = 0; cuota.NumeroCuota = (sbyte) numCuota; numCuota++; cuota.ValorCuota = valor / cantidadCuotas; cuota.IDExtraLiquidacion = el.IDExtraLiquidacion; cuota.ExtrasLiquidAcIon = el; set.Add(cuota); mesCorrespondiente = mesCorrespondiente.AddMonths(1); } el.CuOtAsExtrasLiquidAcIon = set; database.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict); return idExtraARetornar; } catch (Exception ex) { if (estado == 1) { tablaExtrasLiquidacion.DeleteOnSubmit(el); database.SubmitChanges(); } WriteErrorLog(ex); throw new Exception("Error al ingresar los extras. " + ex.Message); } }