Example #1
0
        public bool modificarDB(ct_cbtecble_Info info)
        {
            try
            {
                ba_Conciliacion_det_IngEgr_Data odata = new ba_Conciliacion_det_IngEgr_Data();

                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);
                    }

                    string mensaje = "";
                    if (!odata.ValidarComprobanteEnConciliacion(info.IdEmpresa, info.IdTipoCbte, info.IdCbteCble, ref mensaje))
                    {
                        Entity.cb_Observacion = info.cb_Observacion;
                        Context.SaveChanges();
                        return(true);
                    }

                    Entity.cb_Fecha       = info.cb_Fecha.Date;
                    Entity.IdSucursal     = info.IdSucursal;
                    Entity.cb_Observacion = info.cb_Observacion;
                    Entity.cb_Valor       = Math.Round(info.lst_ct_cbtecble_det.Where(q => q.dc_Valor > 0).Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero);
                    Entity.CodCbteCble    = info.CodCbteCble;
                    Entity.IdPeriodo      = info.IdPeriodo = Convert.ToInt32(info.cb_Fecha.ToString("yyyyMM"));

                    Entity.IdUsuarioUltModi = info.IdUsuarioUltModi;
                    Entity.cb_FechaUltModi  = DateTime.Now;

                    var lstDet = Context.ct_cbtecble_det.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble).ToList();
                    Context.ct_cbtecble_det.RemoveRange(lstDet);

                    //Context.Database.ExecuteSqlCommand("DElETE ct_cbtecble_det WHERE IdEmpresa = " + info.IdEmpresa + " and IdTipoCbte = " + info.IdTipoCbte + " and IdCbteCble = " + info.IdCbteCble + "");

                    int secuencia = 1;
                    foreach (var item in info.lst_ct_cbtecble_det)
                    {
                        ct_cbtecble_det Entity_det = new ct_cbtecble_det
                        {
                            IdEmpresa           = Entity.IdEmpresa,
                            IdCbteCble          = Entity.IdCbteCble,
                            IdTipoCbte          = Entity.IdTipoCbte,
                            dc_Observacion      = item.dc_Observacion,
                            dc_Valor            = Math.Round(item.dc_Valor, 2, MidpointRounding.AwayFromZero),
                            IdCtaCble           = item.IdCtaCble,
                            secuencia           = secuencia++,
                            dc_para_conciliar   = item.dc_para_conciliar,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_cargo       = item.IdPunto_cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        };
                        Context.ct_cbtecble_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                };
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "ct_cbtecble_Data", Metodo = "modificarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }