Exemple #1
0
        public bool actualizaMontoRealPresupuesto(DateTime fecha, decimal?monto)
        {
            bool respuesta = false;

            using (var context = new MBEntities())
            {
                var prep = (from PRESUPUESTO in context.PRESUPUESTO
                            where fecha <= PRESUPUESTO.dFechaFinal && fecha >= PRESUPUESTO.dFechaInicio
                            select PRESUPUESTO).FirstOrDefault();
                prep.dMontoReal          += monto;
                context.Entry(prep).State = System.Data.Entity.EntityState.Modified;
                respuesta = (Convert.ToBoolean(context.SaveChanges()) == true ? true : false);
            }
            return(respuesta);
        }
Exemple #2
0
        public bool actualizarPago(int idCatalogo, DateTime fecha, bool estado)
        {
            bool resultado = false;

            using (var context = new MBEntities())
            {
                var pago = (from PAGOS in context.PAGOS
                            where PAGOS.iIdCatalogo == idCatalogo
                            orderby PAGOS.dFechaVencePago descending
                            select PAGOS).FirstOrDefault();
                pago.bEstado = estado;
                context.Entry(pago).State = System.Data.Entity.EntityState.Modified;
                resultado = (Convert.ToBoolean(context.SaveChanges()) == true ? true : false);
            }
            return(resultado);
        }
Exemple #3
0
        public bool registroGasto(DCGastos nuevoGasto, DCHisTipoCambio tipoCambioParcial)
        {
            bool resultado = false;

            using (var context = new MBEntities())
            {
                using (var contextTransaccion = context.Database.BeginTransaction())
                {
                    try
                    {
                        //Registrar el gasto
                        context.GASTOS.Add(new GASTOS
                        {
                            iIdCatalogo  = nuevoGasto.iIdCatalogo,
                            dMonto       = nuevoGasto.dMonto,
                            dFecha       = nuevoGasto.dFecha,
                            vDetalle     = nuevoGasto.vDetalle,
                            iIdFormaPago = nuevoGasto.iIdFormaPago
                        });
                        context.SaveChanges();
                        //Obtener el gaste recién insertado
                        var ultimoGasto = (from GASTOS in context.GASTOS
                                           orderby GASTOS.iIdGastos
                                           descending
                                           select GASTOS).FirstOrDefault();
                        //Validar el tipo de moneda del gasto insertado
                        if (tipoCambioParcial.iIdMoneda == 1)
                        {
                            context.HIS_TIPO_CAMBIO.Add(new HIS_TIPO_CAMBIO
                            {
                                vMonto    = tipoCambioParcial.vMonto,
                                dFecha    = tipoCambioParcial.dFecha,
                                iIdMoneda = tipoCambioParcial.iIdMoneda,
                                iIdGasto  = ultimoGasto.iIdGastos
                            });
                            context.SaveChanges();
                        }
                        //Registrar la unión del gasto con el detalle del presupuesto para lo cual se obtiene el detalle
                        //por la fecha y el catalogo del gasto registrado
                        var detPresupuesto = (from detPrep in context.PRESUPUESTO
                                              join union in context.T_UNION_DETALLE_PRESUPUESTO on detPrep.iIdPresupuesto equals union.iIdPresupuesto
                                              join det in context.DETALLE_PRESUPUESTO on new { union.iIdDetalle } equals new { det.iIdDetalle }
                                              where nuevoGasto.dFecha <= detPrep.dFechaFinal && nuevoGasto.dFecha >= detPrep.dFechaInicio &&
                                              nuevoGasto.iIdCatalogo == det.iIdDetalle
                                              select new { det.iIdCatalogo, det.iIdDetalle, det.dMonto }).FirstOrDefault();
                        //Guardar el registro en la tabla de unión detalle y gasto
                        context.T_UNION_GAS_DET_PRESUP.Add(new T_UNION_GAS_DET_PRESUP
                        {
                            iIdDetallePresupuesto = detPresupuesto.iIdDetalle,
                            iIdGasto = ultimoGasto.iIdGastos
                        });
                        context.SaveChanges();
                        //Actualizar el monto real del presupuesto actual
                        var prep = (from PRESUPUESTO in context.PRESUPUESTO
                                    where nuevoGasto.dFecha <= PRESUPUESTO.dFechaFinal && nuevoGasto.dFecha >= PRESUPUESTO.dFechaInicio
                                    select PRESUPUESTO).FirstOrDefault();
                        prep.dMontoReal          += nuevoGasto.dMonto;
                        context.Entry(prep).State = System.Data.Entity.EntityState.Modified;
                        context.SaveChanges();
                        //Para el registro del capital primero se obtiene el capital actual y en este caso se le resta
                        //el monto del gasto registrado.
                        var capitalActual = (from HIS_CAPITAL_FINANCIERO in context.HIS_CAPITAL_FINANCIERO
                                             orderby HIS_CAPITAL_FINANCIERO.iIdCapitalF
                                             descending
                                             select HIS_CAPITAL_FINANCIERO).FirstOrDefault();
                        //Convertir el monto del gasto a colones
                        var monto = utilitarios.convertirDolarAColon(nuevoGasto.dMonto, tipoCambioParcial.vMonto);
                        //Guardar el nuevo historial menos el monto del gasto
                        context.HIS_CAPITAL_FINANCIERO.Add(new HIS_CAPITAL_FINANCIERO
                        {
                            dMontoCF      = capitalActual.dMontoCF - monto,
                            dFechaDeCorte = nuevoGasto.dFecha,
                            bEstado       = false //para los gastos
                        });
                        context.SaveChanges();

                        var IdUltimoCapital = (from HIS_CAPITAL_FINANCIERO in context.HIS_CAPITAL_FINANCIERO
                                               orderby HIS_CAPITAL_FINANCIERO.iIdCapitalF
                                               descending
                                               select HIS_CAPITAL_FINANCIERO.iIdCapitalF).FirstOrDefault();
                        //Regitrar la unión de capital y gastos
                        context.T_UNION_HIS_CF_GS.Add(new T_UNION_HIS_CF_GS
                        {
                            iIdGasto    = ultimoGasto.iIdGastos,
                            iIdCapitalF = IdUltimoCapital
                        });
                        context.SaveChanges();
                        //Actualizar el control de pagos en caso de ser uno.
                        //Buscar si el pago existe
                        var pago = (from PAGOS in context.PAGOS
                                    where PAGOS.iIdCatalogo == nuevoGasto.iIdCatalogo
                                    orderby PAGOS.dFechaVencePago
                                    descending
                                    select PAGOS).FirstOrDefault();
                        if (pago != null)
                        {
                            pago.bEstado = true;
                            context.Entry(pago).State = System.Data.Entity.EntityState.Modified;
                            context.SaveChanges();
                        }

                        contextTransaccion.Commit();
                    }
                    catch (Exception e)
                    {
                        var error = e;

                        contextTransaccion.Rollback();
                        resultado = false;
                    }
                }
            }
            return(resultado);
        }