public bool update(ComprobanteDTO Comprobante) { using (var context = getContext()) { try { var row = context.Comprobante.Where(x => x.IdComprobante == Comprobante.IdComprobante).SingleOrDefault(); row.IdTipoComprobante = Comprobante.IdTipoComprobante; row.IdTipoDocumento = Comprobante.IdTipoDocumento; row.IdEntidadResponsable = Comprobante.IdEntidadResponsable; row.IdEntidadResponsable2 = Comprobante.IdEntidadResponsable2; row.IdMoneda = Comprobante.IdMoneda; row.IdEmpresa = Comprobante.IdEmpresa; row.NroDocumento = Comprobante.NroDocumento; row.Monto = Comprobante.Monto; row.IdArea = Comprobante.IdArea; row.IdResponsable = Comprobante.IdResponsable; row.IdCategoria = Comprobante.IdCategoria; //row.IdProyecto = Comprobante.IdProyecto; if (Comprobante.IdTipoComprobante == 1 || Comprobante.IdTipoComprobante == 3) { if (row.Proyecto.FirstOrDefault() != null && row.Proyecto.FirstOrDefault().IdProyecto != Comprobante.IdProyecto) { var zProyecto = row.Proyecto.FirstOrDefault(); row.Proyecto.Remove(zProyecto); if (Comprobante.IdProyecto > 0) { var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault(); row.Proyecto.Add(xProyecto); } } else if (row.Proyecto.FirstOrDefault() == null) { var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault(); row.Proyecto.Add(xProyecto); } } else if(Comprobante.IdEntidadResponsable2 > 0) { if (row.Proyecto.FirstOrDefault() != null && row.Proyecto.FirstOrDefault().IdProyecto != Comprobante.IdProyecto) { var zProyecto = row.Proyecto.FirstOrDefault(); row.Proyecto.Remove(zProyecto); if (Comprobante.IdProyecto > 0) { var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault(); row.Proyecto.Add(xProyecto); } } else if (row.Proyecto.FirstOrDefault() == null) { var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault(); row.Proyecto.Add(xProyecto); } } row.FechaEmision = Comprobante.FechaEmision; row.FechaConclusion = Comprobante.FechaConclusion; row.Comentario = Comprobante.Comentario; row.Estado = Comprobante.Estado; row.IdHonorario = Comprobante.IdHonorario; row.MontoSinIGV = Comprobante.MontoSinIGV; row.TipoCambio = Comprobante.TipoCambio; row.UsuarioCreacion = Comprobante.UsuarioCreacion; var allmontos = from m in context.AreaPorComprobante where m.IdComprobante == row.IdComprobante select m; foreach (var item in allmontos) { row.AreaPorComprobante.Remove(item); } foreach (var item in Comprobante.lstMontos) { AreaPorComprobante novo = new AreaPorComprobante(); novo.IdArea = item.IdArea; novo.IdComprobante = row.IdComprobante; novo.Monto = item.Monto; row.AreaPorComprobante.Add(novo); } context.SaveChanges(); return true; } catch (Exception e) { throw e; } } }
public bool add(ComprobanteDTO Comprobante) { using (var context = getContext()) { try { Comprobante nuevo = new Comprobante(); nuevo.IdTipoComprobante = Comprobante.IdTipoComprobante; nuevo.IdTipoDocumento = Comprobante.IdTipoDocumento; nuevo.IdEntidadResponsable = Comprobante.IdEntidadResponsable; nuevo.IdEntidadResponsable2 = Comprobante.IdEntidadResponsable2; nuevo.IdMoneda = Comprobante.IdMoneda; nuevo.IdEmpresa = Comprobante.IdEmpresa; nuevo.NroDocumento = Comprobante.NroDocumento; nuevo.Monto = Comprobante.Monto; nuevo.IdArea = Comprobante.IdArea; nuevo.IdResponsable = Comprobante.IdResponsable; nuevo.IdCategoria = Comprobante.IdCategoria; //nuevo.IdProyecto = Comprobante.IdProyecto; if(Comprobante.IdTipoComprobante == 1 || Comprobante.IdTipoComprobante == 3) { if (Comprobante.IdProyecto > 0) { var pProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault(); nuevo.Proyecto.Add(pProyecto); } } else if(Comprobante.IdEntidadResponsable2 > 0) { if (Comprobante.IdProyecto > 0) { var pProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault(); nuevo.Proyecto.Add(pProyecto); } } nuevo.FechaEmision = Comprobante.FechaEmision; nuevo.FechaConclusion = Comprobante.FechaConclusion; nuevo.Comentario = Comprobante.Comentario; nuevo.Estado = true; nuevo.Ejecutado = false; nuevo.IdHonorario = Comprobante.IdHonorario; nuevo.MontoSinIGV = Comprobante.MontoSinIGV; nuevo.TipoCambio = Comprobante.TipoCambio; nuevo.UsuarioCreacion = Comprobante.UsuarioCreacion; context.Comprobante.Add(nuevo); foreach (var item in Comprobante.lstMontos) { AreaPorComprobante novo = new AreaPorComprobante(); novo.IdArea = item.IdArea; novo.IdComprobante = nuevo.IdComprobante; novo.Monto = item.Monto; nuevo.AreaPorComprobante.Add(novo); } context.SaveChanges(); return true; } catch (Exception e) { throw e; } } }