public object ingresaPagoContrato(PagoContrato pago, int id)
        {
            object result = null;

            try
            {
                var dyParam = new OracleDynamicParameters();

                dyParam.Add("pc_id", OracleDbType.Int32, ParameterDirection.Input, id);
                dyParam.Add("pc_fecha", OracleDbType.Date, ParameterDirection.Input, pago.pagoContratoReal);
                dyParam.Add("pc_estado", OracleDbType.Int32, ParameterDirection.Input, pago.pagoContratoEstadoId);


                var conn = this.GetConnection();
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }

                if (conn.State == ConnectionState.Open)
                {
                    var query = "SP_INGRESA_PAGO_CONTRATO";

                    result = SqlMapper.Query(conn, query, param: dyParam, commandType: CommandType.StoredProcedure);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(result);
        }
        public object InsertPagosByContrato(PagoContrato pagoContrato)
        {
            var dat = pagoContrato.pagoContratoVcto;

            var arrayList = new ArrayList();

            for (int ctr = 0; ctr <= 12; ctr++)
            {
                //Console.WriteLine(dat.AddMonths(ctr).ToString("d"));
                //arrayList.Add(dat.AddMonths(ctr).ToString("d"));

                object result = null;

                ContratoRepository contrato       = new ContratoRepository(configuration);
                dynamic            resultContrato = contrato.GetLastContratoId();

                try
                {
                    var dyParam = new OracleDynamicParameters();
                    pagoContrato.pagoContratoVcto = Convert.ToDateTime(dat.AddMonths(ctr).ToString("d"));
                    dyParam.Add("pc_pago_contrato_descripcion", OracleDbType.Varchar2, ParameterDirection.Input, pagoContrato.pagoContratoDescripcion);
                    dyParam.Add("pc_contrato_id", OracleDbType.Int32, ParameterDirection.Input, Convert.ToInt32(resultContrato[0].CONTRATO_ID));
                    dyParam.Add("pc_pago_fecha_vcto", OracleDbType.Date, ParameterDirection.Input, pagoContrato.pagoContratoVcto);
                    dyParam.Add("pc_cliente_id", OracleDbType.Int32, ParameterDirection.Input, pagoContrato.clienteId);

                    var conn = this.GetConnection();
                    if (conn.State == ConnectionState.Closed)
                    {
                        conn.Open();
                    }

                    if (conn.State == ConnectionState.Open)
                    {
                        var query = "SP_INSERT_PAGO_CONTRATO";

                        result = SqlMapper.Query(conn, query, param: dyParam, commandType: CommandType.StoredProcedure);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return("Ok");
        }
示例#3
0
        public ActionResult InsertContrato([FromBody] PagoContrato pagoContrato)
        {
            var response = pagosRepository.InsertPagosByContrato(pagoContrato);

            return(Ok());
        }
示例#4
0
        public ActionResult ingresaPagoContrato([FromBody] PagoContrato pago, int id)
        {
            var result = pagosRepository.ingresaPagoContrato(pago, id);

            return(Ok());
        }
        private ActionResult GuardarContrato(Contratos contratos, FormCollection form, bool esModificado, String[] PersonaNotificar_Id)
        {
            bool   exito   = false;
            string mensaje = string.Empty;

            try
            {
                if (contratos == null)
                {
                    return(HttpNotFound());
                }

                if (!AutorizacionContrato(contratos.Contrato_Id, true))
                {
                    return(RedirectToAction("AccessDenied", "Account"));
                }

                //if (ModelState.IsValid)
                //{
                double valorContratoAux = Convert.ToDouble(contratos.ValorContratoAux.Replace(",", "").Replace(".00", ""));
                contratos.ValorContrato = valorContratoAux;

                double valorAdministrarAux = Convert.ToDouble(contratos.ValorAdministrarAux.Replace(",", "").Replace(".00", ""));
                contratos.ValorAdministrar = valorAdministrarAux;

                if (!string.IsNullOrEmpty(contratos.HonorariosAux))
                {
                    double honorariosAux = Convert.ToDouble(contratos.HonorariosAux.Replace(",", "").Replace(".00", ""));
                    contratos.Honorarios = honorariosAux;
                }

                if (!string.IsNullOrEmpty(contratos.ValorPolizaAux))
                {
                    double valorPolizaAux = Convert.ToDouble(contratos.ValorPolizaAux.Replace(",", "").Replace(".00", ""));
                    contratos.ValorPoliza = valorPolizaAux;
                }

                if (!string.IsNullOrEmpty(contratos.ValorCdpAux))
                {
                    double valorCdpAux = Convert.ToDouble(contratos.ValorCdpAux.Replace(",", "").Replace(".00", ""));
                    contratos.ValorCDP = valorCdpAux;
                }

                if (!string.IsNullOrEmpty(contratos.ValorCrpAux))
                {
                    double valorCrpAux = Convert.ToDouble(contratos.ValorCrpAux.Replace(",", "").Replace(".00", ""));
                    contratos.ValorCRP = valorCrpAux;
                }

                if (esModificado)
                {
                    db.Entry(contratos).State = EntityState.Modified;
                }
                else
                {
                    db.Contratos.Add(contratos);
                    db.SaveChanges();
                }

                int id = contratos.Contrato_Id;

                if (!string.IsNullOrEmpty(contratos.Observaciones))
                {
                    //Almaceno la observacion en la tabla historiaobservaciones
                    HistoriaObservaciones historiaObs = new HistoriaObservaciones
                    {
                        Observaciones = contratos.Observaciones,
                        Fecha         = DateTime.Now,
                        ContratoId    = id,
                    };
                    db.HistoriaObservaciones.Add(historiaObs);
                }

                //Almaceno las personas a notificar
                if (PersonaNotificar_Id != null)
                {
                    foreach (var item in PersonaNotificar_Id)
                    {
                        Notificaciones notificacion = new Notificaciones()
                        {
                            ContractId = id,
                            PersonId   = Convert.ToInt32(item)
                        };
                        db.Notificaciones.Add(notificacion);
                    }
                }

                // Revisión de pagos - No aplican para los contratos que sean CIAD
                //Se desactiva el condicional para que guarde los pagos al contrato asi no sean interadministrativos
                //int idTipoContratoCIAD = (new ContratosHelper()).ObtenerIdCIAD();
                //if (contratos.TipoContrato_Id != idTipoContratoCIAD)
                //{
                List <PagoContrato> pagosActuales    = null;
                List <int>          pagosModificados = new List <int>();
                if (esModificado)
                {
                    pagosActuales = db.PagoContrato.Where(p => p.Contrato_Id == id).ToList <PagoContrato>();
                }

                string strNumeroPagos = form["numeroPagos"];

                if (!string.IsNullOrEmpty(strNumeroPagos))
                {
                    int numeroPagos = int.Parse(strNumeroPagos);
                    for (int i = 0; i < numeroPagos; i++)
                    {
                        string idPagoAux = form["idPago_" + i];

                        double valorPagoAux = Convert.ToDouble(form["valorPago_" + i].Replace(",", "").Replace(".00", ""));

                        PagoContrato pago = null;
                        if (esModificado && !string.IsNullOrEmpty(idPagoAux))
                        {
                            int idPago = int.Parse(idPagoAux);
                            pagosModificados.Add(idPago);
                            pago                 = pagosActuales.Where(p => p.PagosContrato_Id == idPago).FirstOrDefault <PagoContrato>();
                            pago.Valor           = valorPagoAux;
                            pago.Fecha           = DateTime.Parse(form["fechaPago_" + i]);
                            pago.Notas           = !string.IsNullOrEmpty(form["notasPago_" + i]) ? form["notasPago_" + i] : string.Empty;
                            db.Entry(pago).State = EntityState.Modified;
                        }
                        else
                        {
                            pago = new PagoContrato
                            {
                                Contrato_Id = id,
                                Valor       = valorPagoAux,
                                Fecha       = DateTime.Parse(form["fechaPago_" + i]),
                                Notas       = !string.IsNullOrEmpty(form["notasPago_" + i]) ? form["notasPago_" + i] : string.Empty
                            };
                            db.PagoContrato.Add(pago);
                        }
                    }
                }
                else
                {
                    mensaje = "No se agregaron pagos al contrato. Por favor verifique.";
                }

                //if (pagosActuales != null && pagosActuales.Count > 0 && pagosModificados != null && pagosModificados.Count > 0)
                //{
                //    List<PagoContrato> pagosContrato = new List<PagoContrato>();
                //    foreach (var pago in pagosActuales)
                //    {
                //        if (!pagosModificados.Contains(pago.PagosContrato_Id))
                //            db.Entry(pago).State = EntityState.Deleted;
                //        else
                //            pagosContrato.Add(pago);
                //    }

                //    contratos.PagoContrato = pagosContrato;

                //}
                //}

                // Solamente se deben guardar los cambios cuando NADA falle
                exito = (db.SaveChanges() > 0);
                //}
                //else
                //{
                //    mensaje = "No fue posible " + (ViewBag.IsEdit ? "actualizar" : "crear") + " el contrato";
                //}
            }
            catch (Exception e)
            {
                mensaje = "Ha ocurrido un error al " + (ViewBag.IsEdit ? "actualizar" : "crear") + " el contrato: " + e.Message;
            }

            if (exito)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.Persona_Id                  = new SelectList(db.Personas.Where(x => x.TipoPersona_Id == 3), "Persona_Id", "NombreCompleto", contratos.Persona_Id);
                ViewBag.PersonaAbogado_Id           = new SelectList(db.Personas.Where(x => x.TipoPersona_Id == 1), "Persona_Id", "NombreCompleto", contratos.PersonaAbogado_Id);
                ViewBag.PersonaSuperviosr_Id        = new SelectList(db.Personas.Where(x => x.TipoPersona_Id == 2), "Persona_Id", "NombreCompleto", contratos.PersonaSuperviosr_Id);
                ViewBag.PersonaSupervisorTecnico_Id = new SelectList(db.Personas.Where(x => x.TipoPersona_Id == 4), "Persona_Id", "NombreCompleto", contratos.PersonaSupervisorTecnico_Id);
                ViewBag.TipoEstadoContrato_Id       = new SelectList(db.TiposEstadoContrato, "TiposEstadoContrato_Id", "Descripcion", contratos.TipoEstadoContrato_Id);
                ViewBag.ContratoMarco_Id            = new SelectList(db.Contratos.Where(c => c.ContratoMarco_Id == null), "Contrato_Id", "NumeroContrato", contratos.ContratoMarco_Id);
                ViewBag.TipoContrato_Id_Aux         = new SelectList(db.TiposContratos, "TipoContrato_Id", "Descripcion", contratos.TipoContrato_Id);
                ViewBag.FormaPagoId                 = new SelectList(db.FormaPagoes, "Id", "Descripcion");
                ViewBag.PersonaNotificar_Id         = new SelectList(db.Personas, "Persona_Id", "NombreCompleto");

                ViewBag.MensajeError = mensaje;

                return(View(contratos));
            }
        }