public Boolean GuardarDB(ct_cbtecble_Reversado_Info Info) { try { using (EntitiesDBConta Context = new EntitiesDBConta()) { var Address = new ct_cbtecble_Reversado(); Address.IdEmpresa = Info.IdEmpresa; Address.IdTipoCbte = Info.IdTipoCbte; Address.IdCbteCble = Info.IdCbteCble; Address.IdEmpresa_Anu = Info.IdEmpresa_Anu; Address.IdTipoCbte_Anu = Info.IdTipoCbte_Anu; Address.IdCbteCble_Anu = Info.IdCbteCble_Anu; Context.ct_cbtecble_Reversado.Add(Address); Context.SaveChanges(); } return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString(); throw new Exception(ex.ToString()); } }
/// <param name="info">Debe ir llenos los PK y el IdUsuarioUltAnu</param> /// <returns></returns> public bool anularDB(ct_cbtecble_Info info) { try { using (Entities_contabilidad Context = new Entities_contabilidad()) { ct_cbtecble Entity = Context.ct_cbtecble.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble); if (Entity == null) { return(false); } //Si ya esta anulado no volverlo a anular if (Entity.cb_Estado == "I") { return(true); } #region Comprobante reverso ct_cbtecble_tipo e_tipo = Context.ct_cbtecble_tipo.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte).FirstOrDefault(); if (e_tipo == null) { return(false); } #region Cabecera ct_cbtecble Entity_reverso = new ct_cbtecble { IdEmpresa = Entity.IdEmpresa, IdTipoCbte = e_tipo.IdTipoCbte_Anul, IdCbteCble = get_id(Entity.IdEmpresa, e_tipo.IdTipoCbte_Anul), IdSucursal = Entity.IdSucursal, cb_Estado = Entity.cb_Estado = "A", cb_Fecha = DateTime.Now.Date, cb_Observacion = "**REVERSO DE DIARIO tipo: " + Entity.IdTipoCbte.ToString() + " #cbte: " + Entity.IdCbteCble.ToString() + "** " + Entity.cb_Observacion, cb_Valor = Entity.cb_Valor, CodCbteCble = "ANU" + Entity.CodCbteCble, IdPeriodo = Entity.IdPeriodo = Convert.ToInt32(DateTime.Now.ToString("yyyyMM")), IdUsuario = info.IdUsuarioAnu, cb_FechaTransac = DateTime.Now }; Context.ct_cbtecble.Add(Entity_reverso); #endregion #region Detalle var det = Context.ct_cbtecble_det.Where(q => q.IdEmpresa == Entity.IdEmpresa && q.IdTipoCbte == Entity.IdTipoCbte && q.IdCbteCble == Entity.IdCbteCble).ToList(); foreach (var item in det) { ct_cbtecble_det Entity_reverso_det = new ct_cbtecble_det { IdEmpresa = item.IdEmpresa, IdTipoCbte = Entity_reverso.IdTipoCbte, IdCbteCble = Entity_reverso.IdCbteCble, secuencia = item.secuencia, IdCtaCble = item.IdCtaCble, dc_Observacion = "**REVERSO DE DIARIO tipo: " + Entity.IdTipoCbte.ToString() + " #cbte: " + Entity.IdCbteCble.ToString() + "** " + item.dc_Observacion, dc_Valor = item.dc_Valor * -1, dc_para_conciliar = false, IdCentroCosto = item.IdCentroCosto, IdPunto_cargo = item.IdPunto_cargo, IdPunto_cargo_grupo = item.IdPunto_cargo_grupo }; Context.ct_cbtecble_det.Add(Entity_reverso_det); } #endregion #endregion #region Tabla intermedia ct_cbtecble_Reversado Entity_int = new ct_cbtecble_Reversado { IdEmpresa = Entity.IdEmpresa, IdTipoCbte = Entity.IdTipoCbte, IdCbteCble = Entity.IdCbteCble, IdEmpresa_Anu = Entity_reverso.IdEmpresa, IdTipoCbte_Anu = Entity_reverso.IdTipoCbte, IdCbteCble_Anu = Entity_reverso.IdCbteCble, }; Context.ct_cbtecble_Reversado.Add(Entity_int); #endregion Entity.cb_MotivoAnu = info.cb_MotivoAnu; Entity.cb_Estado = info.cb_Estado = "I"; Entity.IdUsuarioAnu = info.IdUsuarioAnu; Entity.cb_FechaAnu = DateTime.Now; Entity.cb_Observacion = "REVERSADO CON EL DIARIO tipo: " + Entity_reverso.IdTipoCbte.ToString() + " #cbte: " + Entity_reverso.IdCbteCble.ToString() + "** " + Entity.cb_Observacion; Context.SaveChanges(); }; return(true); } catch (Exception) { throw; } }