示例#1
0
 public void SavePago(Pago pago)
 {
     try
     {
         dbCtx.Pagos.Add(pago);
         dbCtx.SaveChanges();
     }
     catch (DbUpdateConcurrencyException)
     {
         ReloadEntity(pago);
         throw;
     }
 }
示例#2
0
        private Pago LlenaClase()
        {
            Pago pago = new Pago();

            pago.PagoId = Utils.ToInt(IdTextBox.Text);
            bool resultado = DateTime.TryParse(fechaTextBox.Text, out DateTime fecha);

            pago.Fecha     = fecha;
            pago.PersonaId = Utils.ToInt(PersonaDropDownList.SelectedValue);
            pago.Monto     = Utils.ToInt(montoTextBox.Text);

            return(pago);
        }
示例#3
0
 public static void EjecutarResultadoPagoParcial(Pago pago)
 {
     if (pago.Cuenta.ConvenioActivo == null)
         pago.Cuenta.setearEstado(
             (pago.Cuenta.Estado.Equals(Parametros.GetByClave("ESTADOCUENTA.FIRMO-RECONOCIMIENTO"))
             || pago.Cuenta.Estado.Equals(Parametros.GetByClave("ESTADOCUENTA.JUICIO-CON-CONVENIO"))
             || pago.Cuenta.Estado.Equals(Parametros.GetByClave("ESTADOCUENTA.JUICIO-CON-PAGOS-PARCIALES"))
             || pago.Cuenta.Estado.Equals(Parametros.GetByClave("ESTADOCUENTA.JUICIO-EJECUTIVO-INICIADO"))
             || pago.Cuenta.Estado.Equals(Parametros.GetByClave("ESTADOCUENTA.JUICIO-CON-PROMESA")))
                 ? Parametros.GetByClave("ESTADOCUENTA.JUICIO-CON-PAGOS-PARCIALES")
                 : Parametros.GetByClave("ESTADOCUENTA.CTA.-CON-PAGOS-PARCIALES"));
     else
         pago.Cuenta.setearEstado(Parametros.GetByClave("ESTADOCUENTA.FIRMO-RECONOCIMIENTO"));
 }
示例#4
0
 /// <summary>
 /// Este método representa el punto de entrada a la api de Resultado de Pago.
 /// Se maneja como un método estático que obtiene todos lo que se necesita 
 /// desde sus párametros y con ello define qué pago.Tipo se debe ejecutar y 
 /// aplicar las acciones asociadas al mismo. Aqui no se capturan excepciones 
 /// para se que vuelvan a la clase de gestión.
 /// IMPORTANTE: el pago.Tipo de un Pago se ejecuta DESPUES!! de que el mismo 
 /// se ha cerrado y agregado a la cuenta asociada. Esto es así para que, si
 /// si la aplicación del pago.Tipo falla, el pago no se modifique y ya quede
 /// aplicado. IMPORTANTE2: NO OBSTANTE, COMBIENE VERIFICAR EL RESULTADO Y QUE 
 /// DEBE Y PUEDE EJECUTARSE Y RECIEN DESPUES HACER CAMBIOS!!!!!!!!!!!.
 /// </summary>
 /// <param name="pago">
 /// El pago cuyo ingreso genera la ejecución de un pago.Tipo.
 /// </param>
 public static void EjecutarResultado(Pago pago)
 {
     // Primero se ejecuta la parte propia de cada pago.Tipo
     //if (pago.Tipo.Clave.Equals("TIPOPAGO.PAGOCUOTA"))
     //    EjecutarResultadoPagoCuota(pago);
     //else if (pago.Tipo.Clave.Equals("TIPOPAGO.PARCIAL"))
     //    EjecutarResultadoPagoParcial(pago);
     //else if (pago.Tipo.Clave.Equals("TIPOPAGO.SUCURSAL"))
     //    EjecutarResultadoPagoSucursal(pago);
     //else if (pago.Tipo.Clave.Equals("TIPOPAGO.CANCELACION"))
     //    EjecutarResultadoCancelacion(pago);
     //else if (pago.Tipo.Clave.Equals("TIPOPAGO.CANCELAQUITA"))
     //    EjecutarResultadoCancelaQuita(pago);
     //else if (pago.Tipo.Clave.Equals("TIPOPAGO.ANTICIPO"))
     //    EjecutarResultadoAnticipo(pago);
     //else if (pago.Tipo.Clave.Equals("TIPOPAGO.JUDICIAL"))
     //    EjecutarResultadoJudicial(pago);
 }
示例#5
0
                public override void OnLoad()
                {
                        if (this.Registro != null) {
                                this.Numero = System.Convert.ToInt32(m_Registro["numero"]);
                                this.PV = System.Convert.ToInt32(m_Registro["pv"]);

                                if (m_Registro["id_concepto"] != null)
                                        this.Concepto = new Lbl.Cajas.Concepto(this.Connection, this.GetFieldValue<int>("id_concepto"));
                                else
                                        this.Concepto = null;

                                if (m_Registro["concepto"] != null)
                                        this.ConceptoTexto = m_Registro["concepto"].ToString();
                                else
                                        this.ConceptoTexto = string.Empty;

                                this.Cobros = new ColeccionDeCobros();
                                this.Pagos = new ColeccionDePagos();

                                // Cargo pagos asociados al registro
                                // Pagos en efectivo
                                using (System.Data.DataTable TablaPagos = Connection.Select("SELECT * FROM cajas_movim WHERE id_caja=" + Lfx.Workspace.Master.CurrentConfig.Empresa.CajaDiaria.ToString() + " AND id_recibo=" + Id.ToString())) {
                                        foreach (System.Data.DataRow Pago in TablaPagos.Rows) {
                                                decimal ImporteCaja = System.Convert.ToDecimal(Pago["importe"]);
                                                if (this.DePago && ImporteCaja < 0) {
                                                        Pago Pg = new Pago(this.Connection, Lbl.Pagos.TiposFormasDePago.Efectivo, -ImporteCaja);
                                                        Pg.Recibo = this;
                                                        Pagos.Add(Pg);
                                                } else if (this.DePago == false && ImporteCaja > 0) {
                                                        Cobro Cb = new Cobro(this.Connection, Lbl.Pagos.TiposFormasDePago.Efectivo, ImporteCaja);
                                                        Cb.Recibo = this;
                                                        Cobros.Add(Cb);
                                                }
                                        }
                                }

                                // Pagos con cheque
                                using (System.Data.DataTable TablaPagos = this.Connection.Select("SELECT * FROM bancos_cheques WHERE (id_recibo=" + this.Id.ToString() + " OR id_recibo_pago=" + this.Id.ToString() + ")")) {
                                        foreach (System.Data.DataRow Pago in TablaPagos.Rows) {
                                                Bancos.Cheque Ch = new Lbl.Bancos.Cheque(Connection, (Lfx.Data.Row)Pago);
                                                if (this.DePago)
                                                        Ch.ReciboPago = this;
                                                else
                                                        Ch.ReciboCobro = this;
                                                if (this.DePago)
                                                        Pagos.Add(new Pago(Ch));
                                                else 
                                                        Cobros.Add(new Cobro(Ch));
                                        }
                                }

                                // Pagos con Tarjetas de Crédito y Débito
                                using (System.Data.DataTable TablaPagos = this.Connection.Select("SELECT id_cupon FROM tarjetas_cupones WHERE id_recibo=" + Id.ToString())) {
                                        foreach (System.Data.DataRow Pago in TablaPagos.Rows) {
                                                Pagos.Cupon Cp = new Pagos.Cupon(Connection, System.Convert.ToInt32(Pago["id_cupon"]));
                                                Cobros.Add(new Cobro(Cp));
                                        }
                                }

                                // Acreditaciones en cuenta regular (excepto caja diaria)
                                using (System.Data.DataTable TablaPagos = this.Connection.Select("SELECT * FROM cajas_movim WHERE auto=1 AND id_caja<>" + Lfx.Workspace.Master.CurrentConfig.Empresa.CajaDiaria.ToString() + " AND id_caja<>" + Lfx.Workspace.Master.CurrentConfig.Empresa.CajaCheques.ToString() + " AND id_recibo=" + this.Id.ToString())) {
                                        foreach (System.Data.DataRow Pago in TablaPagos.Rows) {
                                                if (this.DePago) {
                                                        Pago Pg = new Pago(this.Connection, Lbl.Pagos.TiposFormasDePago.Caja, Math.Abs(System.Convert.ToDecimal(Pago["importe"])));
                                                        Pg.Recibo = this;
                                                        Pg.CajaOrigen = new Cajas.Caja(Connection, System.Convert.ToInt32(Pago["id_caja"]));
                                                        Pagos.Add(Pg);
                                                } else {
                                                        Cobro Cb = new Cobro(this.Connection, Lbl.Pagos.TiposFormasDePago.Caja, System.Convert.ToDecimal(Pago["importe"]));
                                                        Cb.Recibo = this;
                                                        Cb.CajaDestino = new Cajas.Caja(Connection, System.Convert.ToInt32(Pago["id_caja"]));
                                                        Cobros.Add(Cb);
                                                }
                                        }
                                }

                                // Otros valores
                                using (System.Data.DataTable TablaPagos = this.Connection.Select("SELECT id_valor FROM pagos_valores WHERE id_recibo=" + Id.ToString())) {
                                        foreach (System.Data.DataRow Pago in TablaPagos.Rows) {
                                                Lbl.Pagos.Valor Vl = new Lbl.Pagos.Valor(Connection, System.Convert.ToInt32(Pago["id_valor"]));
                                                Vl.Recibo = this;
                                                if (this.DePago)
                                                        Pagos.Add(new Pago(Vl));
                                                else
                                                        Cobros.Add(new Cobro(Vl));
                                        }
                                }
                        }
                        base.OnLoad();
                }
示例#6
0
 public static void EjecutarResultadoPagoSucursal(Pago pago)
 {
     pago.Cuenta.setearEstado((pago.Cuenta.ConvenioActivo != null)
                              ? Parametros.GetByClave("ESTADOCUENTA.CTA.-REF.-PAGA-EN-CLIENTE")
                              : Parametros.GetByClave("ESTADOCUENTA.PAGO-EN-SUCURSAL"));
 }
示例#7
0
 public static void EjecutarResultadoPagoCuota(Pago pago)
 {
     if (pago.Cuenta.ConvenioActivo != null)
         pago.Cuenta.setearEstado(Parametros.GetByClave("ESTADOCUENTA.FIRMO-RECONOCIMIENTO"));
 }
示例#8
0
 public static void EjecutarResultadoCancelacion(Pago pago)
 {
     pago.Cuenta.setearEstado(Parametros.GetByClave("ESTADOCUENTA.CANCELACION-TOTAL-DE-DEUDA"));
 }
示例#9
0
 private static void EjecutarResultadoJudicial(Pago pago)
 {
     pago.Cuenta.setearEstado(Parametros.GetByClave("ESTADOCUENTA.CUENTA-CON-EMBARGO"));
 }
示例#10
0
    public static bool GenerarReciboDePago(DBEscolar.Alumno Alumno, string Ciclo, bool AgregarLibros,out int folioPa,out Plantel Pla)
    {
        DBIngresosDataContext db = new DBIngresosDataContext();
        var Recibos = (from P in db.Pagos
                       where P.AlumnoID == Alumno.AlumnoID && P.Ciclo == Ciclo && (P.Estatus == 1 || P.Estatus == 2)
                        && P.DetalleDePagos.Count(x => x.Clave == "A01") > 0
                       select P).ToList();

        if (Recibos.Count() != 0)
        {//Ya esta generado{
            folioPa = 0;
            Pla = null;
            return true;
        }

        Pago Pago = new Pago();
        Pago.AlumnoID = Alumno.AlumnoID;
        Pago.Ciclo = Ciclo;
        Pago.Estatus = 1;
        Pago.FechaDeAlta = DateTime.Now;
        Pago.PlantelID = Alumno.PlantelID;
        Pago.Tipo = 0;
        Pago.Comentarios = "Generado por web";

        //Sacar el FOLIO
        DBEscolar.DBEscolarDataContext dbEsc = new DBEscolar.DBEscolarDataContext();
        var Plantel = (from P in dbEsc.Plantels
                       where P.PlantelID == Alumno.PlantelID
                       select P).FirstOrDefault();

        Pla = Plantel;

        if (Plantel == null)
        {//No debe de pasar
            folioPa = 0;
            return false;
        }

        int? Folio =0;
        byte zona = Plantel.Zona;
        byte plantel = Plantel.plantel;
           db.spEXEGetFolio(zona, plantel, ref Folio);

        Pago.Folio = (int)Folio;
        Pago.Referencia = string.Format("{0}{1:000}{2}{3:000000}", zona, plantel, Alumno.Matricula, Folio);
        Pago.Referencia += Utils.getVerificador(Pago.Referencia);

        bool Exonerado = EstaExonerado(Alumno.Matricula, Ciclo); //Matricula para reinscripcion / Folio si es nuevo ingreso

        DetalleDePago Detalle;

        //Cuota Semestral
        Detalle = new DetalleDePago();
        Detalle.Clave = "A01";
        Detalle.Concepto = "Cuota Semestral";
        if (zona == 1 && plantel == 9)
            Detalle.Monto = 163;
        else
            Detalle.Monto = 326;

        if (Exonerado)
        {
            Detalle.Monto = 0;
            Detalle.Concepto += " (EXONERADO)";
        }

        Pago.DetalleDePagos.Add(Detalle);

        //Servicio de Laboratorio y Taller
        Detalle = new DetalleDePago();
        if (!((zona == 1 && (plantel == 115 || plantel == 117 || plantel == 118 || plantel == 127)) ||
           (zona == 2 && (plantel == 69 || plantel == 71)) ||
           (zona == 4 && (plantel == 94 || plantel == 96 || plantel == 98)) ||
           (zona == 5 && plantel == 68)))
        {
            Detalle.Clave = "A20";
            Detalle.Concepto = "Servicio de Laboratorio y Taller";
            Detalle.Monto = 66.50m;
            Pago.DetalleDePagos.Add(Detalle);
        }

        //Cooperación Pro-Mantenimiento del Plantel
        Detalle = new DetalleDePago();
        Detalle.Clave = "A21";
        Detalle.Concepto = "Cooperación Pro-Mantenimiento del Plantel";
        Detalle.Monto = 66.50m;
        Pago.DetalleDePagos.Add(Detalle);

        //Cuota de Seguro Estudiantil
        Detalle = new DetalleDePago();
        Detalle.Clave = "A22";
        Detalle.Concepto = "Cuota de Seguro Estudiantil";
        Detalle.Monto = 40;
        Pago.DetalleDePagos.Add(Detalle);

        //LIBROS
        if (AgregarLibros)
        {
            Detalle = new DetalleDePago();
            switch (Alumno.Semestre)
            {

                case 2:
                    Detalle.Clave = "A16";
                    Detalle.Concepto = "PAQUETE DE LIBROS DE 2DO SEMESTRE";
                    Detalle.Monto = 520;
                    break;
                case 4:
                    Detalle.Clave = "A18";
                    Detalle.Concepto = "PAQUETE DE LIBROS DE 4TO SEMESTRE";
                    Detalle.Monto = 520;
                    break;
                case 6:
                    {
                        int cap =  getCap(Alumno);

                        Detalle.Clave = "A25";
                        Detalle.Concepto = "PAQUETE DE LIBROS DE 6TO SEMESTRE";

                        if (cap == 73 || cap == 80 || cap == 81)
                            Detalle.Monto = 578;
                        else Detalle.Monto = 520;
                        break;
                    }
            }
            if(Detalle.Clave != null)
                Pago.DetalleDePagos.Add(Detalle);
        }

        Pago.Total = Pago.DetalleDePagos.Sum(x => x.Monto);
        db.Pagos.InsertOnSubmit(Pago);

        try
        {
            db.SubmitChanges();
        }
        catch (Exception)
        {
            folioPa = 0;
            return false;
        }
        folioPa = Folio.Value;
        return true;
    }
示例#11
0
 public Pago ModificarPago(Pago pago)
 {
     return ObjPago.Modificar(pago);
 }
示例#12
0
 public Pago CrearPago(Pago pago)
 {
     return ObjPago.Crear(pago);
 }