public static decimal calcularCosto(Subcomponente subcomponente) { decimal costo = decimal.Zero; try { List <Producto> productos = ProductoDAO.getProductosBySubComponente(subcomponente.id); List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(subcomponente.id, 2); if ((productos != null && productos.Count > 0) || (actividades != null && actividades.Count > 0)) { if (productos != null) { foreach (Producto producto in productos) { costo += Decimal.Add(costo, producto.costo ?? default(decimal)); } } if (actividades != null && actividades.Count > 0) { foreach (Actividad actividad in actividades) { costo += Decimal.Add(costo, actividad.costo ?? default(decimal)); } } } else { PlanAdquisicion pa = PlanAdquisicionDAO.getPlanAdquisicionByObjeto(2, subcomponente.id); if (pa != null) { List <PlanAdquisicionPago> lstpagos = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id)); if (lstpagos != null && lstpagos.Count > 0) { decimal pagos = decimal.Zero; foreach (PlanAdquisicionPago pago in lstpagos) { pagos += Decimal.Add(pagos, pago.pago ?? default(decimal)); } costo = pagos; } else { costo = pa.montoContrato; } } else { costo = subcomponente.costo ?? default(decimal); } } } catch (Exception e) { CLogger.write("16", "Subcomponente.class", e); } return(costo); }
public IActionResult Adquisicion([FromBody] dynamic value) { try { PlanAdquisicionValidator validator = new PlanAdquisicionValidator(); ValidationResult results = validator.Validate(value); if (results.IsValid) { PlanAdquisicion pa = new PlanAdquisicion(); pa.categoriaAdquisicions = CategoriaAdquisicionDAO.getCategoriaPorId(value.categoriaAdquisicion); pa.categoriaAdquisicion = pa.categoriaAdquisicions.id; pa.tipoAdquisicions = TipoAdquisicionDAO.getTipoAdquisicionPorId(value.tipoId); pa.unidadMedida = value.medidaNombre; pa.cantidad = value.cantidad; pa.total = value.tota; pa.precioUnitario = value.precioUnitario; pa.preparacionDocPlanificado = value.preparacionDocumentosPlanificada; pa.preparacionDocReal = value.preparacionDocReal; pa.lanzamientoEventoPlanificado = value.lanzamientoEventoPlanificada; pa.lanzamientoEventoReal = value.lanzamientoEventoReal; pa.recepcionOfertasPlanificado = value.recepcionOfertasPlanificada; pa.recepcionOfertasReal = value.recepcionOfertasReal; pa.adjudicacionPlanificado = value.adjudicacionPlanificada; pa.adjudicacionReal = value.adjudicacionReal; pa.firmaContratoPlanificado = value.firmaContratoPlanificada; pa.firmaContratoReal = value.firmaContratoReal; pa.objetoId = value.objetoId; pa.objetoTipo = value.objetoTipo; pa.usuarioCreo = User.Identity.Name; pa.fechaCreacion = DateTime.Now; pa.estado = 1; pa.bloqueado = 0; pa.numeroContrato = value.numeroContrato; pa.montoContrato = value.montoContrato; pa.nog = value.nog; pa.tipoRevision = value.tipoRevision; PlanAdquisicionDAO.guardarPlanAdquisicion(pa); string pagos = value.pagos; int objetoId = value.objetoId; int objetoTipo = value.objetoTipo; bool guardado = PlanAdquisicionDAO.actualizarNivelesPagos(pagos, pa, User.Identity.Name, objetoId, objetoTipo); return(Ok(new { success = guardado, id = pa.id })); } else { return(Ok(new { success = false })); } } catch (Exception e) { CLogger.write("1", "PlanAdquisicionController.class", e); return(BadRequest(500)); } }
public async Task <IActionResult> RegistrarPlanAdquisicion(PlanAdquisicion planAdquisicion) { usuarioId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); valorPciId = User.FindFirst(ClaimTypes.Role).Value; if (!string.IsNullOrEmpty(valorPciId)) { pciId = int.Parse(valorPciId); } if (planAdquisicion != null) { await ActualizarPlanAdquisicion(pciId, planAdquisicion); return(Ok(1)); } return(NoContent()); }
public static PlanAdquisicion getPlanAdquisicionByObjeto(int objetoTipo, int ObjetoId) { PlanAdquisicion ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { ret = db.QueryFirstOrDefault <PlanAdquisicion>("SELECT * FROM PLAN_ADQUISICION pa WHERE pa.objeto_id=:objetoId AND pa.objeto_tipo=:objetoTipo AND pa.estado=1", new { objetoTipo = objetoTipo, ObjetoId = ObjetoId }); } } catch (Exception e) { CLogger.write("3", "PlanAdquisicionDAO.class", e); } return(ret); }
public static PlanAdquisicion getPlanAdquisicionById(int planAdquisicionId) { PlanAdquisicion ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { ret = db.QueryFirstOrDefault <PlanAdquisicion>("SELECT * FROM PLAN_ADQUISICION WHERE id=:planAdquisicionId", new { planAdquisicionId = planAdquisicionId }); } } catch (Exception e) { CLogger.write("2", "PlanAdquisicionDAO.class", e); } return(ret); }
public static bool borrarPlan(PlanAdquisicion plan) { bool ret = false; try { using (DbConnection db = new OracleContext().getConnection()) { int eliminado = db.Execute("DELETE FROM PLAN_ADQUISICION WHERE id=:id", new { id = plan.id }); ret = eliminado > 0 ? true : false; } } catch (Exception e) { CLogger.write("5", "PlanAdquisicionDAO.class", e); } return(ret); }
public static int guardarPlanAdquisicion(PlanAdquisicion planAdquisicion) { int ret = 0; try { using (DbConnection db = new OracleContext().getConnection()) { int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM PLAN_ADQUISICION WHERE id=:id", new { id = planAdquisicion.id }); if (existe > 0) { int guardado = db.Execute("UPDATE PLAN_ADQUISICION SET tipo_adquisicion=:tipoAdquisicion, categoria_adquisicion=:categoriaAdquisicion, " + "unidad_medida=:unidadMedida, cantidad=:cantidad, total=:total, precio_unitario=:precioUnitario, preparacion_doc_planificado=:preparacionDocPlanificado, " + "preparacion_doc_real=:preparacionDocReal, lanzamiento_evento_planificado=:lanzamientoEventoPlanificado, lanzamiento_evento_real=:lanzamientoEventoReal, " + "recepcion_ofertas_planificado=:recepcionOfertasPlanificado, recepcion_ofertas_real=:recepcionOfertasReal, adjudicacion_planificado=:adjudicacionPlanificado, " + "adjudicacion_real=:adjudicacionReal, firma_contrato_planificado=:firmaContratoPlanificado, firma_contrato_real=:firmaContratoReal, objeto_id=:objetoId, " + "objeto_tipo=:objetoTipo, usuario_creo=:usuarioCreo, usuarioActualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, fecha_actualizacion=:fechaActualizacion, " + "estado=:estado, bloqueado=:bloqueado, numero_contrato=:numeroContrato, monto_contrato=:montoContrato, nog=:nog, tipo_revision=:tipoRevision WHERE id=:id", planAdquisicion); ret = guardado > 0 ? Convert.ToInt32(planAdquisicion.id) : 0; } else { int sequenceId = db.ExecuteScalar <int>("SELECT seq_plan_adquisicion.nextval FROM DUAL"); planAdquisicion.id = sequenceId; int guardado = db.Execute("INSERT INTO PLAN_ADQUISICION VALUES (:id, :tipoAdquisicion, :categoriaAdquisicion, :unidadMedida, :cantidad, :total, " + ":precioUnitario, :preparacionDocPlanificado, :preparacionDocReal, :lanzamientoEventoPlanificado, :lanzamientoEventoReal, :recepcionOfertasPlanificado, " + ":recepcionOfertasReal, :adjudicacionPlanificado, :adjudicacionReal, :firmaContratoPlanificado, :firmaContratoReal, :objetoId, :objetoTipo, :usuarioCreo, " + ":usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado, :bloqueado, :numeroContrato, :montoContrato, :nog, :tipoRevision)", planAdquisicion); ret = guardado > 0 ? Convert.ToInt32(planAdquisicion.id) : 0; } } } catch (Exception e) { CLogger.write("1", "PlanAdquisicionDAO.class", e); } return(ret); }
public static PlanAdquisicion getPlanAdquisicionByObjetoLB(int objetoTipo, int ObjetoId, String lineaBase) { PlanAdquisicion ret = null; try { using (DbConnection db = new OracleContext().getConnection()) { String query = String.Join(" ", "SELECT pa.* FROM sipro_history.plan_adquisicion pa", "WHERE pa.objeto_id=:objetoId", "AND pa.objeto_tipo=:objetoTipo", lineaBase != null ? "AND pa.linea_base LIKE '%" + lineaBase + "%'" : "AND pa.actual=1", "AND pa.estado=1"); ret = db.QueryFirstOrDefault <PlanAdquisicion>(query, new { objetoId = ObjetoId, objetoTipo = objetoTipo }); } } catch (Exception e) { CLogger.write("3", "PlanAdquisicionDAO.class", e); } return(ret); }
private async Task ActualizarPlanAdquisicion(int pciId, PlanAdquisicion planAdquisicion) { DateTime fechaActual = _generalInterface.ObtenerFechaHoraActual(); ActividadEspecifica actividadEspecificaBD = null; int operacion = 1; // operacion=1=>suma; operacion=2=>resta int areaId = 0; await using var transaction = await _dataContext.Database.BeginTransactionAsync(); #region Obtener Area if (planAdquisicion.DependenciaId > 0) { Dependencia dependencia = _dataContext.Dependencia.Where(x => x.DependenciaId == planAdquisicion.DependenciaId).FirstOrDefault(); if (dependencia != null) { areaId = dependencia.AreaId; } } #endregion Obtener Area #region Registrar nuevos if (planAdquisicion.EstadoModificacion == (int)EstadoModificacion.Insertado) { PlanAdquisicion planAdquisicionNuevo = new PlanAdquisicion(); planAdquisicionNuevo.PlanDeCompras = planAdquisicion.PlanDeCompras; planAdquisicionNuevo.ActividadGeneralId = planAdquisicion.ActividadEspecifica.ActividadGeneral.ActividadGeneralId; planAdquisicionNuevo.ActividadEspecificaId = planAdquisicion.ActividadEspecifica.ActividadEspecificaId; planAdquisicionNuevo.ValorAct = planAdquisicion.ValorAct; planAdquisicionNuevo.SaldoAct = planAdquisicion.ValorAct; planAdquisicionNuevo.AplicaContrato = planAdquisicion.AplicaContrato; planAdquisicionNuevo.UsuarioId = planAdquisicion.UsuarioId; planAdquisicionNuevo.DependenciaId = planAdquisicion.DependenciaId; planAdquisicionNuevo.AreaId = areaId; planAdquisicionNuevo.PciId = pciId; planAdquisicionNuevo.EstadoId = (int)EstadoPlanAdquisicion.Generado; if (planAdquisicion.RubroPresupuestal != null) { planAdquisicionNuevo.RubroPresupuestalId = planAdquisicion.RubroPresupuestal.RubroPresupuestalId; planAdquisicionNuevo.DecretoId = planAdquisicion.RubroPresupuestal.PadreRubroId.Value; } actividadEspecificaBD = await _repoActividad.ObtenerActividadEspecificaBase(planAdquisicion.ActividadEspecifica.ActividadEspecificaId); if (actividadEspecificaBD != null) { operacion = 2; // resta await _serviceActividad.ActualizarActividadEspecifica(actividadEspecificaBD, planAdquisicion.ValorAct, operacion); } await _dataContext.PlanAdquisicion.AddAsync(planAdquisicionNuevo); await _dataContext.SaveChangesAsync(); } #endregion Registrar nuevos #region Actualizar registros if (planAdquisicion.EstadoModificacion == (int)EstadoModificacion.Modificado) { decimal valor = 0; PlanAdquisicion planAdquisicionBD = await _repo.ObtenerPlanAnualAdquisicionBase(planAdquisicion.PlanAdquisicionId); if (planAdquisicionBD != null) { if (planAdquisicionBD.ValorAct > planAdquisicion.ValorAct) { operacion = 1; // Suma valor = planAdquisicionBD.ValorAct - planAdquisicion.ValorAct; } else { operacion = 2; // Resta valor = planAdquisicion.ValorAct - planAdquisicionBD.ValorAct; } planAdquisicionBD.PlanDeCompras = planAdquisicion.PlanDeCompras; planAdquisicionBD.AplicaContrato = planAdquisicion.AplicaContrato; planAdquisicionBD.SaldoAct = planAdquisicion.ValorAct; planAdquisicionBD.ValorAct = planAdquisicion.ValorAct; planAdquisicionBD.AplicaContrato = planAdquisicion.AplicaContrato; planAdquisicionBD.DependenciaId = planAdquisicion.DependenciaId; planAdquisicionBD.Crp = planAdquisicion.Crp; planAdquisicionBD.AreaId = areaId; await _dataContext.SaveChangesAsync(); actividadEspecificaBD = await _repoActividad.ObtenerActividadEspecificaBase(planAdquisicion.ActividadEspecifica.ActividadEspecificaId); if (actividadEspecificaBD != null) { await _serviceActividad.ActualizarActividadEspecifica(actividadEspecificaBD, valor, operacion); } } } #endregion Actualizar registros await transaction.CommitAsync(); }
public static bool actualizarNivelesPagos(String pagosString, PlanAdquisicion pa, string usuario, int objetoId, int objetoTipo) { bool ret = false; try { decimal bpagos = decimal.Zero; bool tiene_pagos = false; if (pagosString != null) { JArray pagos = JArray.Parse(pagosString); for (int j = 0; j < pagos.Count; j++) { JObject objeto_pago = new JObject(new JProperty("fecha", pagos[j]), new JProperty("pago", pagos[j])); DateTime fechaPago = (DateTime)objeto_pago["fecha"]; decimal dpago = (decimal)objeto_pago["pago"]; PlanAdquisicionPago pago = new PlanAdquisicionPago(); pago.planAdquisicions = pa; pago.planAdquisicionid = pa.id; pago.fechaPago = fechaPago; pago.pago = dpago; pago.usuarioCreo = usuario; pago.fechaCreacion = DateTime.Now; pago.estado = 1; PlanAdquisicionPagoDAO.guardarPago(pago); bpagos += dpago; tiene_pagos = true; } } List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo); switch (objetoTipo) { case 3: Producto producto = ProductoDAO.getProductoPorId(objetoId); List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id); if (!(subproductos != null && subproductos.Count > 0) && !(actividades != null && actividades.Count > 0)) { if (tiene_pagos) { producto.costo = bpagos; } else { producto.costo = pa.total; } ProductoDAO.guardarProducto(producto, true); } break; case 4: Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId); if (!(actividades != null && actividades.Count > 0)) { if (tiene_pagos) { subproducto.costo = bpagos; } else { subproducto.costo = pa.total; } SubproductoDAO.guardarSubproducto(subproducto, true); } break; case 5: Actividad actividad = ActividadDAO.GetActividadPorId(objetoId); if (!(actividades != null && actividades.Count > 0)) { if (tiene_pagos) { actividad.costo = bpagos; } else { actividad.costo = pa.total; } ActividadDAO.guardarActividad(actividad, true); } break; } ret = true; } catch (Exception e) { CLogger.write("50", "PlanAdquisicionDAO.class", e); } return(ret); }
public static void actualizarCostoPlanificadoObjeto(PlanAdquisicion pa) { decimal ret = decimal.Zero; int objetoId = Convert.ToInt32(pa.objetoId); int objetoTipo = Convert.ToInt32(pa.objetoTipo); List <PlanAdquisicionPago> pagos = PlanAdquisicionPagoDAO.getPagosByPlan(Convert.ToInt32(pa.id)); List <Actividad> actividades = ActividadDAO.GetActividadesPorObjeto(objetoId, objetoTipo); foreach (Actividad actividad in actividades) { ret += actividad.costo ?? default(decimal); } switch (objetoTipo) { case 0: Proyecto proyecto = ProyectoDAO.getProyecto(objetoId); List <Componente> componentes = ComponenteDAO.getComponentesPorProyecto(proyecto.id); if (componentes == null || componentes.Count == 0) { if (actividades == null || actividades.Count == 0) { if (pagos != null && pagos.Count > 0) { foreach (PlanAdquisicionPago pago in pagos) { ret += pago.pago ?? default(decimal); } } else { ret = pa.total ?? default(decimal); } } } else { foreach (Componente cmp in componentes) { ret += cmp.costo ?? default(decimal); } } proyecto.costo = ret; ProyectoDAO.guardarProyecto(proyecto, false); break; case 1: Componente componente = ComponenteDAO.getComponente(objetoId); List <Producto> productos = ProductoDAO.getProductosByComponente(componente.id); List <Subcomponente> subcomponentes = SubComponenteDAO.getSubComponentesPorComponente(componente.id); if (productos == null || productos.Count == 0 || subcomponentes == null || subcomponentes.Count == 0) { if (actividades == null || actividades.Count == 0) { if (pagos != null && pagos.Count > 0) { foreach (PlanAdquisicionPago pago in pagos) { ret += pago.pago ?? default(decimal); } } else { ret = pa.total ?? default(decimal); } } } else { if (productos != null) { foreach (Producto prod in productos) { ret += prod.costo ?? default(decimal); } } if (subcomponentes != null) { foreach (Subcomponente subcomponente in subcomponentes) { ret += subcomponente.costo ?? default(decimal); } } } componente.costo = ret; ComponenteDAO.guardarComponente(componente, false); break; case 3: Producto producto = ProductoDAO.getProductoPorId(objetoId); List <Subproducto> subproductos = SubproductoDAO.getSubproductosByProductoid(producto.id); if (subproductos == null || subproductos.Count == 0) { if (actividades == null || actividades.Count == 0) { if (pagos != null && pagos.Count > 0) { foreach (PlanAdquisicionPago pago in pagos) { ret += pago.pago ?? default(decimal); } } else { ret = pa.total ?? default(decimal); } } } else { foreach (Subproducto subprod in subproductos) { ret += subprod.costo ?? default(decimal); } } producto.costo = ret; ProductoDAO.guardarProducto(producto, false); break; case 4: Subproducto subproducto = SubproductoDAO.getSubproductoPorId(objetoId); if (actividades != null && actividades.Count > 0) { subproducto.costo = ret; SubproductoDAO.guardarSubproducto(subproducto, false); } break; case 5: Actividad actividad = ActividadDAO.GetActividadPorId(objetoId); if (actividades != null && actividades.Count > 0) { actividad.costo = ret; ActividadDAO.guardarActividad(actividad, false); } break; } }
public IActionResult PlanAdquisicionPorObjeto([FromBody] dynamic value) { try { PlanAdquisicion adquisicion = PlanAdquisicionDAO.getPlanAdquisicionByObjeto((int)value.objetoTipo, (int)value.objetoId); if (adquisicion != null) { stadquisicion temp = new stadquisicion(); temp.id = Convert.ToInt32(adquisicion.id); temp.adjudicacionPlanificado = adquisicion.adjudicacionPlanificado != null?adquisicion.adjudicacionPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.adjudicacionReal = adquisicion.adjudicacionReal != null?adquisicion.adjudicacionReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.cantidad = Convert.ToInt32(adquisicion.cantidad); temp.categoriaAdquisicion = Convert.ToInt32(adquisicion.categoriaAdquisicions.id); temp.categoriaNombre = adquisicion.categoriaAdquisicions.nombre; temp.firmaContratoPlanificado = adquisicion.firmaContratoPlanificado != null?adquisicion.firmaContratoPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.firmaContratoReal = adquisicion.firmaContratoReal != null?adquisicion.firmaContratoReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.lanzamientoEventoPlanificado = adquisicion.lanzamientoEventoPlanificado != null?adquisicion.lanzamientoEventoPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.lanzamientoEventoReal = adquisicion.lanzamientoEventoReal != null?adquisicion.lanzamientoEventoReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.unidadMedida = adquisicion.unidadMedida; temp.montoContrato = adquisicion.montoContrato; temp.nog = Convert.ToInt64(adquisicion.nog); temp.numeroContrato = adquisicion.numeroContrato; temp.precioUnitario = adquisicion.precioUnitario ?? default(decimal); temp.preparacionDocPlanificado = adquisicion.preparacionDocPlanificado != null?adquisicion.preparacionDocPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.preparacionDocReal = adquisicion.preparacionDocReal != null?adquisicion.preparacionDocReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.recepcionOfertasPlanificado = adquisicion.recepcionOfertasPlanificado != null?adquisicion.recepcionOfertasPlanificado.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.recepcionOfertasReal = adquisicion.recepcionOfertasReal != null?adquisicion.recepcionOfertasReal.Value.ToString("dd/MM/yyyy H:mm:ss") : null; temp.tipoAdquisicion = Convert.ToInt32(adquisicion.tipoAdquisicions.id); temp.tipoNombre = adquisicion.tipoAdquisicions.nombre; temp.total = adquisicion.total ?? default(decimal); temp.tipoRevision = adquisicion.tipoRevision ?? default(int); temp.tipoRevisionNombre = temp.tipoRevision == 1 ? "Ex-ante" : temp.tipoRevision == 2 ? "Ex-Post" : null; List <PlanAdquisicionPago> lstpagos = PlanAdquisicionDAO.getPagos(Convert.ToInt32(adquisicion.id)); if (lstpagos != null && lstpagos.Count > 0) { List <stpago> pagos = new List <stpago>(); stpago pago = null; for (int i = 0; i < lstpagos.Count; i++) { if (lstpagos[i].estado == 1) { pago = new stpago(); pago.fechaPago = lstpagos[i].fechaPago.ToString("dd/MM/yyyy H:mm:ss"); pago.pago = lstpagos[i].pago ?? default(decimal); pagos.Add(pago); } } } return(Ok(new { success = true, adquisicion = temp })); } else { return(Ok(new { success = false })); } } catch (Exception e) { CLogger.write("3", "PlanAdquisicionController.class", e); return(BadRequest(500)); } }
private List <PlanAdquisicion> obtenerListaDetalleCdp(IList <DetalleCDPDto> lista) { List <PlanAdquisicion> listaCDP = new List <PlanAdquisicion>(); PlanAdquisicion cdp = null; var listaActividadGeneral = _context.ActividadGeneral.ToList(); var listaActividadEspecifica = _context.ActividadEspecifica.ToList(); var listaDependencia = _context.Dependencia.ToList(); var listaRubrosPresupuestales = _context.RubroPresupuestal.ToList(); var listaUsuarios = _context.Usuario.ToList(); var listaArea = _context.Area.ToList(); foreach (var item in lista) { cdp = new PlanAdquisicion(); cdp.PcpId = item.PcpId; cdp.IdArchivo = item.IdArchivo; cdp.Cdp = item.Cdp; cdp.Proy = item.Proy; cdp.Prod = item.Prod; cdp.PlanDeCompras = item.PlanDeCompras; cdp.AplicaContrato = item.AplicaContrato; cdp.Convenio = item.Convenio; cdp.PlanDeCompras = item.PlanDeCompras; cdp.ValorAct = item.ValorAct; cdp.SaldoAct = item.SaldoAct; cdp.ValorCDP = item.ValorCDP; cdp.ValorRP = item.ValorRP; cdp.ValorOB = item.ValorOB; cdp.ValorOP = item.ValorOP; cdp.SaldoTotal = item.SaldoTotal; cdp.Valor_Convenio = item.Valor_Convenio; //Actividad General if (!string.IsNullOrEmpty(item.Proyecto)) { var actividad = (from ag in listaActividadGeneral join rp in listaRubrosPresupuestales on ag.RubroPresupuestalId equals rp.RubroPresupuestalId where (rp.Nombre.Trim().ToUpper() == item.Proyecto.Trim().ToUpper()) select ag).FirstOrDefault(); if (actividad != null) { cdp.ActividadGeneralId = actividad.ActividadGeneralId; } } //Actividad Especifica if (!string.IsNullOrEmpty(item.ActividadBpin)) { var actividad = listaActividadEspecifica .Where(c => c.Nombre.ToUpper() == item.ActividadBpin.ToUpper()) .FirstOrDefault(); if (actividad != null) { cdp.ActividadEspecificaId = actividad.ActividadEspecificaId; } } //Dependencia if (!string.IsNullOrEmpty(item.Dependencia)) { var dependencia = listaDependencia .Where(c => c.Nombre.ToUpper() == item.Dependencia.ToUpper()) .FirstOrDefault(); if (dependencia != null) { cdp.DependenciaId = dependencia.DependenciaId; } } //Rubro Presupuestal if (!string.IsNullOrEmpty(item.RubroPresupuestal.Identificacion)) { var rubro = listaRubrosPresupuestales .Where(c => c.Identificacion.ToUpper() == item.RubroPresupuestal.Identificacion.ToUpper()) .FirstOrDefault(); if (rubro != null) { cdp.RubroPresupuestalId = rubro.RubroPresupuestalId; } } //Decreto if (!string.IsNullOrEmpty(item.Decreto)) { var decreto = listaRubrosPresupuestales .Where(c => c.Identificacion.ToUpper() == item.Decreto.ToUpper()) .FirstOrDefault(); if (decreto != null) { cdp.DecretoId = decreto.RubroPresupuestalId; } } //Area if (!string.IsNullOrEmpty(item.Area)) { var area = listaArea .Where(c => c.Nombre.ToUpper() == item.Area.ToUpper()) .FirstOrDefault(); if (area != null) { cdp.AreaId = area.AreaId; } } //Usuario if (!string.IsNullOrEmpty(item.Responsable)) { var usuario = listaUsuarios .Where(c => c.Nombres.ToUpper() + " " + c.Apellidos.ToUpper() == item.Responsable.ToUpper()) .FirstOrDefault(); if (usuario != null) { cdp.UsuarioId = usuario.UsuarioId; } } listaCDP.Add(cdp); } return(listaCDP); }
public IActionResult Pagos([FromBody] dynamic value) { try { PagoAdquisicionValidator validator = new PagoAdquisicionValidator(); ValidationResult results = validator.Validate(value); if (results.IsValid) { bool result = false; List <stPago> pagos = JsonConvert.DeserializeObject <List <stPago> >(value.pagos); foreach (stPago pago in pagos) { if (pago.id == 0) { PlanAdquisicion pa = PlanAdquisicionDAO.getPlanAdquisicionById(value.planId); PlanAdquisicionPago nuevoPago = new PlanAdquisicionPago(); nuevoPago.planAdquisicionid = pa.id; nuevoPago.fechaPago = Convert.ToDateTime(pago.fechaReal); nuevoPago.pago = pago.pago; nuevoPago.descripcion = pago.descripcion; nuevoPago.usuarioCreo = User.Identity.Name; nuevoPago.fechaCreacion = DateTime.Now; nuevoPago.estado = 1; result = PlanAdquisicionPagoDAO.guardarPago(nuevoPago); } else { result = true; } } List <PlanAdquisicionPago> Pagos = PlanAdquisicionPagoDAO.getPagosByPlan(value.planId); List <stPago> resultado = new List <stPago>(); foreach (PlanAdquisicionPago pago in Pagos) { stPago temp = new stPago(); temp.id = Convert.ToInt32(pago.id); temp.fecha = pago.fechaPago.ToString("dd/MM/yyyy H:mm:ss"); temp.pago = pago.pago ?? default(decimal); temp.descripcion = pago.descripcion; resultado.Add(temp); } return(Ok(new { success = true, pagos = resultado })); } else { return(Ok(new { success = true })); } } catch (Exception e) { CLogger.write("2", "PlanAdquisicionPagoController.class", e); return(BadRequest(500)); } }
public async Task <ActionResult> RegistrarSolicitudCDP(SolicitudCDP solicitudCDP) { usuarioId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); SolicitudCDP solicitud = null; DetalleSolicitudCDP detalle = null; PlanAdquisicion planAdquisicion = null; List <DetalleSolicitudCDP> listaDetalle = new List <DetalleSolicitudCDP>(); await using var transaction = await _dataContext.Database.BeginTransactionAsync(); try { if (solicitudCDP != null) { if (solicitudCDP.TipoOperacion.TipoOperacionId == (int)TipoOperacionEnum.SOLICITUD_INICIAL) { #region Cabecera Solicitud CDP solicitud = new SolicitudCDP(); solicitud.TipoOperacionId = solicitudCDP.TipoOperacion.TipoOperacionId; solicitud.UsuarioId = usuarioId; solicitud.UsuarioIdRegistro = usuarioId; solicitud.FechaRegistro = _generalInterface.ObtenerFechaHoraActual(); solicitud.EstadoSolicitudCDPId = solicitudCDP.EstadoSolicitudCDP.EstadoId; solicitud.NumeroActividad = solicitudCDP.NumeroActividad; solicitud.AplicaContrato = solicitudCDP.AplicaContrato; solicitud.NombreBienServicio = solicitudCDP.NombreBienServicio; solicitud.ProyectoInversion = solicitudCDP.ProyectoInversion; solicitud.NombreBienServicio = solicitudCDP.NombreBienServicio; solicitud.ActividadProyectoInversion = solicitudCDP.ActividadProyectoInversion; solicitud.ObjetoBienServicioContratado = solicitudCDP.ObjetoBienServicioContratado; solicitud.Observaciones = solicitudCDP.Observaciones; solicitud.Cdp = null; solicitud.TipoDetalleCDPId = null; await _dataContext.SolicitudCDP.AddAsync(solicitud); await _dataContext.SaveChangesAsync(); #endregion Cabecera Solicitud CDP #region Registrar Detalle Solicitud CDP if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0) { foreach (var item in solicitudCDP.DetalleSolicitudCDPs) { detalle = new DetalleSolicitudCDP(); detalle.SolicitudCDPId = solicitud.SolicitudCDPId; detalle.PlanAdquisicionId = item.PlanAdquisicionId; detalle.RubroPresupuestalId = item.RubroPresupuestal.RubroPresupuestalId; detalle.ValorActividad = item.ValorActividad; detalle.SaldoActividad = item.SaldoActividad; detalle.ValorSolicitud = item.ValorSolicitud; listaDetalle.Add(detalle); } //Insertar Detalle await _dataContext.DetalleSolicitudCDP.AddRangeAsync(listaDetalle); await _dataContext.SaveChangesAsync(); } #endregion Registrar Detalle Solicitud CDP #region Actualizar Plan de adquisición if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0) { foreach (var item in solicitudCDP.DetalleSolicitudCDPs) { planAdquisicion = await _planAdquisicionRepo.ObtenerPlanAnualAdquisicionBase(item.PlanAdquisicionId.Value); planAdquisicion.SaldoAct = planAdquisicion.SaldoAct - item.ValorSolicitud; planAdquisicion.EstadoId = (int)EstadoPlanAdquisicion.ConCDP; await _dataContext.SaveChangesAsync(); } } #endregion Actualizar Plan de adquisición } else { #region Cabecera Solicitud CDP solicitud = new SolicitudCDP(); solicitud.TipoOperacionId = solicitudCDP.TipoOperacion.TipoOperacionId; solicitud.UsuarioId = usuarioId; solicitud.UsuarioIdRegistro = usuarioId; solicitud.FechaRegistro = _generalInterface.ObtenerFechaHoraActual(); solicitud.EstadoSolicitudCDPId = solicitudCDP.EstadoSolicitudCDP.EstadoId; solicitud.NumeroActividad = solicitudCDP.NumeroActividad; solicitud.AplicaContrato = solicitudCDP.AplicaContrato; solicitud.NombreBienServicio = solicitudCDP.NombreBienServicio; solicitud.ProyectoInversion = solicitudCDP.ProyectoInversion; solicitud.NombreBienServicio = solicitudCDP.NombreBienServicio; solicitud.ActividadProyectoInversion = solicitudCDP.ActividadProyectoInversion; solicitud.ObjetoBienServicioContratado = solicitudCDP.ObjetoBienServicioContratado; solicitud.Observaciones = solicitudCDP.Observaciones; solicitud.Cdp = solicitudCDP.Cdp; solicitud.TipoDetalleCDPId = solicitudCDP.TipoDetalleCDP.TipoDetalleCDPId; await _dataContext.SolicitudCDP.AddAsync(solicitud); await _dataContext.SaveChangesAsync(); #endregion Cabecera Solicitud CDP #region Registrar Detalle Solicitud CDP if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0) { foreach (var item in solicitudCDP.DetalleSolicitudCDPs) { detalle = new DetalleSolicitudCDP(); detalle.SolicitudCDPId = solicitud.SolicitudCDPId; detalle.PlanAdquisicionId = item.PlanAdquisicionId; detalle.RubroPresupuestalId = item.RubroPresupuestal.RubroPresupuestalId; detalle.ValorActividad = item.ValorActividad; detalle.SaldoActividad = item.SaldoActividad; detalle.ValorSolicitud = item.ValorSolicitud; listaDetalle.Add(detalle); } await _dataContext.DetalleSolicitudCDP.AddRangeAsync(listaDetalle); await _dataContext.SaveChangesAsync(); } #endregion Registrar Detalle Solicitud CDP #region Actualizar Plan de adquisición if (solicitudCDP.DetalleSolicitudCDPs != null && solicitudCDP.DetalleSolicitudCDPs.Count > 0) { foreach (var item in solicitudCDP.DetalleSolicitudCDPs) { planAdquisicion = await _planAdquisicionRepo.ObtenerPlanAnualAdquisicionBase(item.PlanAdquisicionId.Value); switch (solicitudCDP.TipoOperacion.TipoOperacionId) { case (int)TipoOperacionEnum.ADICION: { planAdquisicion.SaldoAct = planAdquisicion.SaldoAct - item.ValorSolicitud; break; } case (int)TipoOperacionEnum.REDUCCION: { planAdquisicion.SaldoAct = planAdquisicion.SaldoAct + item.ValorSolicitud; break; } case (int)TipoOperacionEnum.ANULACION: { planAdquisicion.SaldoAct = planAdquisicion.SaldoAct + item.ValorSolicitud; break; } } planAdquisicion.EstadoId = (int)EstadoPlanAdquisicion.ConCDP; await _dataContext.SaveChangesAsync(); } } #endregion Actualizar Plan de adquisición } await transaction.CommitAsync(); return(Ok(solicitudCDP.SolicitudCDPId)); } } catch (Exception) { throw; } throw new Exception($"No se pudo registrar la solicitud de CDP"); }