Beispiel #1
0
        public static List <Detfactura> getDetsfacturaByIdPersona(Int64 pIdPersona)
        {
            List <Detfactura> lista = new List <Detfactura>();

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                try
                {
                    _con.Open();
                    MySqlCommand comando = new MySqlCommand("select df.* from detfactura as df inner join factura as f " +
                                                            "on f.Id=df.IdFactura inner join Producto as p on p.Id = df.IdProducto where f.IdPersona = @pIdPersona " +
                                                            " and df.Tipo = 'R' and (SELECT sum(dfs.Total) from detfactura as dfs inner join factura fs on fs.Id=dfs.IdFactura where dfs.RefNFactura=df.RefNFactura and fs.Estado='C')" +
                                                            " < p.Precio and f.Estado='C' order by Id desc", _con);
                    comando.Parameters.AddWithValue("@pIdPersona", pIdPersona);

                    MySqlDataReader _reader = comando.ExecuteReader();
                    while (_reader.Read())
                    {
                        Detfactura item = new Detfactura(
                            _reader.GetInt64(0),
                            _reader.GetString(1),
                            _reader.GetDecimal(2),
                            _reader.GetDecimal(3),
                            _reader.GetString(4),
                            _reader.IsDBNull(5) ? null : _reader.GetString(5),
                            _reader.GetInt64(6),
                            _reader.GetInt64(7),
                            ProductoDAL.getProductoById(_reader.GetInt64(7)),
                            MatricdetfacDAL.getMatricdetfacByIdDetFactura(_reader.GetInt64(0))
                            );

                        lista.Add(item);
                    }
                    _reader.Close();
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(lista);
        }
Beispiel #2
0
        public static List <Detfactura> getDetsfacturaByIdFactura(Int64 pIdFactura)
        {
            List <Detfactura> lista = new List <Detfactura>();

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                try
                {
                    _con.Open();
                    MySqlCommand comando = new MySqlCommand("select * from detfactura where IdFactura=@pIdFactura order by Id asc", _con);
                    comando.Parameters.AddWithValue("@pIdFactura", pIdFactura);

                    MySqlDataReader _reader = comando.ExecuteReader();
                    while (_reader.Read())
                    {
                        Detfactura item = new Detfactura(
                            _reader.GetInt64(0),
                            _reader.GetString(1),
                            _reader.GetDecimal(2),
                            _reader.GetDecimal(3),
                            _reader.GetString(4),
                            _reader.IsDBNull(5) ? null : _reader.GetString(5),
                            _reader.GetInt64(6),
                            _reader.GetInt64(7),
                            ProductoDAL.getProductoById(_reader.GetInt64(7)),
                            MatricdetfacDAL.getMatricdetfacByIdDetFactura(_reader.GetInt64(0))
                            );

                        lista.Add(item);
                    }
                    _reader.Close();
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(lista);
        }
Beispiel #3
0
        public static Detfactura getDetfacturaById(Int64 pId)
        {
            Detfactura item = null;

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                try
                {
                    _con.Open();
                    MySqlCommand cmdGetItemById = new MySqlCommand("select * from detfactura where Id=@pId", _con);
                    cmdGetItemById.Parameters.AddWithValue("@pId", pId);
                    MySqlDataReader _reader = cmdGetItemById.ExecuteReader();
                    while (_reader.Read())
                    {
                        item = new Detfactura(
                            _reader.GetInt64(0),
                            _reader.GetString(1),
                            _reader.GetDecimal(2),
                            _reader.GetDecimal(3),
                            _reader.GetString(4),
                            _reader.IsDBNull(5)?null:_reader.GetString(5),
                            _reader.GetInt64(6),
                            _reader.GetInt64(7),
                            ProductoDAL.getProductoById(_reader.GetInt64(7)),
                            MatricdetfacDAL.getMatricdetfacByIdDetFactura(_reader.GetInt64(0))
                            );
                    }
                    _reader.Close();
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(item);
        }
Beispiel #4
0
        public static bool syncCuotas(Int64 pIdCurso, Int64 pUserId)
        {
            bool             result     = true;
            bool             registro   = false;
            List <Cuota>     lista      = new List <Cuota>();
            List <Matricula> matriculas = new List <Matricula>();
            Curso            curso      = CursoDAL.getCursoById(pIdCurso);
            DateTime         fechaFin   = Convert.ToDateTime(curso.Hasta);

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                try
                {
                    _con.Open();
                    MySqlTransaction _trans           = _con.BeginTransaction();
                    MySqlCommand     cmdGetMatriculas = new MySqlCommand("select Id from matricula where IdCurso=@pIdCurso order by Id asc", _con);
                    cmdGetMatriculas.Parameters.AddWithValue("@pIdCurso", pIdCurso);
                    MySqlDataReader _reader = cmdGetMatriculas.ExecuteReader();
                    while (_reader.Read())
                    {
                        matriculas.Add(MatriculaDAL.getMatriculaById(_reader.GetInt64(0)));
                    }
                    _reader.Close();
                    foreach (Matricula matricula in matriculas)
                    {
                        DateTime fechaIni = Convert.ToDateTime(matricula.FhRegistro);
                        if (matricula != null)
                        {
                            for (int i = 0; i < (Math.Abs((fechaFin.Month - fechaIni.Month) + 12 * (fechaFin.Year - fechaIni.Year)) + 1); i++)
                            {
                                int    val1  = (fechaIni.AddMonths(i)).Month;
                                int    val2  = (fechaIni.AddMonths(i)).Year;
                                string fecha = fechaIni.AddMonths(i).ToString("yyyy") + "-" + fechaIni.AddMonths(i).ToString("MM") + "-" + (DateTime.DaysInMonth(fechaIni.AddMonths(i).Year, fechaIni.AddMonths(i).Month) > Convert.ToInt32(matricula.DiaLimite) ? matricula.DiaLimite : DateTime.DaysInMonth(fechaIni.AddMonths(i).Year, fechaIni.AddMonths(i).Month).ToString());
                                if (Convert.ToInt32(matricula.DiaLimite) < Convert.ToDateTime(curso.Desde).Day&& Convert.ToDateTime(curso.Desde).AddMonths(i).ToString("MM") == Convert.ToDateTime(matricula.FhRegistro).ToString("MM"))
                                {
                                    fecha = fechaIni.ToString("yyyy") + "-" + fechaIni.AddMonths(i).ToString("MM") + "-" + Convert.ToDateTime(curso.Desde).Day;
                                }
                                Cuota cuota = getCuotaByMonth(matricula.Id, (fechaIni.AddMonths(i)).Month, (fechaIni.AddMonths(i)).Year);
                                if (cuota == null)
                                {
                                    MySqlCommand cmdInsertCuota = new MySqlCommand("Insert into cuota (FhRegistro,Precio,Total,IdMatricula) values ('" + fecha + "',@Precio,@Total,@IdMatricula)", _con, _trans);
                                    cmdInsertCuota.Parameters.AddWithValue("@Precio", Properties.Settings.Default.PrecioCuota);
                                    cmdInsertCuota.Parameters.AddWithValue("@Total", "0.00");
                                    cmdInsertCuota.Parameters.AddWithValue("@IdMatricula", matricula.Id);

                                    if (cmdInsertCuota.ExecuteNonQuery() <= 0)
                                    {
                                        result = false;
                                    }
                                    else
                                    {
                                        registro = true;
                                    }
                                }
                            }
                            List <Cuota> cuotas = matricula.Cuotas.Where(a => Convert.ToDateTime(a.FhRegistro) < Convert.ToDateTime(curso.Desde) || Convert.ToDateTime(a.FhRegistro) > Convert.ToDateTime(curso.Hasta)).ToList();
                            foreach (Cuota cuota in cuotas)
                            {
                                if (MatricdetfacDAL.getMatricdetfacByIdCuota(cuota.Id) == null)
                                {
                                    MySqlCommand cmdInsertCuota = new MySqlCommand("delete from cuota where Id=@Id", _con, _trans);
                                    cmdInsertCuota.Parameters.AddWithValue("@Id", cuota.Id);
                                    if (cmdInsertCuota.ExecuteNonQuery() <= 0)
                                    {
                                        result = false;
                                    }
                                    else
                                    {
                                        registro = true;
                                    }
                                    if (result)
                                    {
                                        MySqlCommand cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                                        cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Sincronizó cuotas en el sistema y se elimino permanentemente la cuota con Id " + cuota.Id + " de la matricula con Id " + matricula.Id + " ya que no habia sido cancelada ni anulada en ningun caso posible.");
                                        cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Eliminar");
                                        cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Cuotas");
                                        cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUserId);
                                        if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                                        {
                                            result = false;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (result && registro)
                    {
                        if (result)
                        {
                            MySqlCommand cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                            cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Sincronizó cuotas en el sistema.");
                            cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Registrar");
                            cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Cuotas");
                            cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUserId);
                            if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                            {
                                result = false;
                            }
                        }
                    }
                    if (result)
                    {
                        if (registro)
                        {
                            _trans.Commit();
                        }
                    }
                    else
                    {
                        _trans.Rollback();
                    }
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(result);
        }